準備する必要なもの
Maven Centralの要求により、公開したいjarとともに、pomとsourceとjavadocを一緒にアップロードする必要です。以下は一式ファイルの例です。
jarの名称について
jarの命名はルールがあります。pomに記載されるartifactIdとversionは、「-」で連結してjarファイル名になります。javadocとsourcesファイルは、リリースしたいjarファイル名に接尾語を付けて命名します。
efw-4.06.015.jar = [artifactId] + "-" + [version] + ".jar"
efw-4.06.015-javadoc.jar = [artifactId] + "-" + [version] + "-" + "javadoc" + ".jar"
efw-4.06.015-sources.jar = [artifactId] + "-" + [version] + "-" + "sources" + ".jar"
※また、リリースするjarは、正式版とスナップショット版も接尾語"SNAPSHOT"で区別します。それぞれは、Maven Centralに格納場所が違うらしいです。画面経由のアップロードは正式版のみで、スナップショット版はmavenツールでしかできません。残念ですが、mavenツールには不慣れの点が多く、スナップショット版のアップロードは別途チャンレンジします。
jarの作成
自分はeclipseを利用しています。eclipseでjarを作成する場合、プロジェクトを選んで右クリックして「エクスポート」メニューを選択して、エクスポート画面が表示します。エクスポート画面にjarファイルを選択して「次へ」ボタンを押します。
jarエクスポート画面が表示されます。ソースフォルダ、クラスファイルとリソース、jarファイル名、3点を入力して、完了ボタンを押します。これでjar作成が完了です。
javadocの作成
javadocの作成は、ソースをもう一回レビューしてくれと理解してよいです。このクラスは継承される必要ですか、このメソッドを本当に公開してよいですかなど、いろいろ整理して必要最小限のpublicクラス・属性・メソッドにしましょう。そうしないといっぱいjavadocを作らないといけないからです。とMaven Centralの考えでしょう。
eclipseでjavadocを作成する場合、プロジェクトを選んで右クリックして「エクスポート」メニューを選択して、エクスポート画面が表示します。エクスポート画面にjavadocを選択して「次へ」ボタンを押します。
まずjavadoc.exeのパスを登録します。次はソースフォルダ、public選択子、保存先パスを入力して、完了ボタンを押します。これでjavadocが作成されます。もしソースのコメントに不備がある場合、いろいろエラーと警告が出ます。自分の場合、気が遠くなるまで修正し続けました。
javadocのステップはまだ終わっていません。次はdocフォルダをjarファイルに圧縮することです。javadocのjarファイル名は前述のルールに従います。
set path=C:\EFW_ALL\jdk1.8.0_351\bin
cd C:\EFW_ALL\pleiades\workspace\efw4x\doc
rem 現在フォルダ配下の全ファイルを対象にする
jar -cvf ../maven/efw-4.06.015-javadoc.jar .
pause
sourcesの作成
もう一回エクスポート画面を呼び出します。
jarエクスポート画面に、ソースフォルダ、ソース、jarファイル名を入力します。sourcesのjarファイル名は前述のルールに従います。
POMの作成
jarを準備できました。次はpomを作成します。Maven Centralの要求事項をご参考。https://central.sonatype.org/publish/requirements/
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.github.efwgrp</groupId>
<artifactId>efw</artifactId>
<version>4.06.015</version>
<name>ESCCO-Framework</name>
<description>
"efw" is an Ajax framework for server site JavaScript designed
and developed by Escco Co., Ltd. using a goal-oriented method.
It is provided as open source free software.
</description>
<url>https://github.com/efwGrp/efw4.X</url>
<licenses>
<license>
<name>The Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>kejun.chang</name>
<email>kejun.chang@escco.co.jp</email>
<organization>efwgrp</organization>
<organizationUrl>https://github.com/efwGrp</organizationUrl>
</developer>
</developers>
<scm>
<connection>https://github.com/efwGrp/efw4.X.git</connection>
<developerConnection>https://github.com/efwGrp/efw4.X.git</developerConnection>
<url>https://github.com/efwGrp/efw4.X/tree/master</url>
</scm>
</project>
これで準備完了。残りは署名とアップロードですが、もう文書がながくなっているから、次にしましょう。
Maven Central へリポジトリを申し込む
Maven Central へ行く前にjarとpomを作成
jarとpomを署名してMaven Centralへアップロード