<< ジョン・カーター | Home | 共通のフォロワーを抽出 #ruby >>

【最新版】Maven Central Repository へのライブラリ登録方法 #maven

Maven Central Repository へのライブラリ登録方法を4年前に書きましたが、今ではこの方法は使えません便利ライブラリ・フレームワークを書いている人はこれを参考にガシガシ登録してもらえれば幸いです。

当然ですが、全ての方法は本家maven.apache.orgに書いてあります。
Guide to uploading artifacts to the Central Repository
はい、英語です。ナナメ読み難しいですね。

押さえておくべき点を日本語で並べます。
1. 必要なメタデータを書いておく
pom.xmlはパッケージング方法やdependencyさえ書いておけばプロジェクトのビルドに差し支えありませんが、Maven Central Repoに登録するにはソースコードがどこにあるのか、ライセンスは何なのかといったビルドには直接必要ないメタデータも記載しておく必要があります。
Twitter4Jのpom.xmlを参考に埋めておけばok。

2. pgpでjarを署名する
以下のページを参考にPGPでjarを署名します。
How To Generate PGP Signatures With Maven - Repository - Confluence

3. Sonatypeにartifactを登録する
SonatypeはMavenのプロジェクト管理ツールを出している会社で、OSS向けには無償で利用できるoss.sonatype.orgがあります。
Sonatype.org: Nexus
また手抜きですが、以下のページを参考にSonatype JIRAにアカウント作ってくださいというリクエストを出します。
Sonatype OSS Maven Repository Usage Guide - Repository - Confluence

参考までにTwitter4Jのリクエストはこれ
[#OSSRH-183] request for creation of a maven repository for Twitter4J - Sonatype JIRA

4. mvn releaseプラグインでSonatypeにリリースする
mvn release:prepare; mvn release:perform でリリースできます。
また事前に以下の様に settings.xml にsonatypeのid、パスワードを記載しておく必要があります。

<settings>
<servers>
<server>
<id>sonatype-nexus-staging</id>
<username>yusuke</username>
<password>*********</password>
</server>
</servers>
</settings>

releaseプラグインを呼び出すコマンドは以下の通り。
$ mvn release:prepare -Darguments="-Dmaven.test.skip=true"
$ mvn -e release:perform -Dgpg.passphrase=**** -Darguments="-Dgpg.passphrase=**** -Dmaven.test.skip=true"

5. oss.sonatype.org でリリースする
releaseプラグインでリリースしたものはsonatypeには入りますがまだCentral Repoには入りません。
oss.sonatype.orgにログインして、Build PromotionのStaging Repositoriesをクリック、自分のartifactを選択してClose→publishします。NexusよりStaging Completed,Promotion Completedとメールが二通来てから1時間くらいするとCentral Repoに反映されます。


以上非常にざっくりとした解説ですが、何か詰まった点があれば@yusukeに聞いてください。加筆していきます。

関連記事:
2012-05-07 - @vvakame の日記



Re: 【最新版】Maven Central Repository へのライブラリ登録方法 #maven

maven-pluginを公開するのに参考にさせていただきました。私の作ったまとめ https://github.com/yas99en/script-maven-plugin/wiki

コメント追加 トラックバック送信