LoginSignup
44
44

More than 5 years have passed since last update.

Android のライブラリプロジェクトを爆速で Maven Central にデプロイする

Last updated at Posted at 2014-04-09

5 つのステップを踏んで、Maven Central にライブラリをデプロイします。

1. Sonatype の JIRA にサインアップする

Sonatype の JIRA にアカウントを登録します。
アカウントの ID と Pass は今後も使うので忘れないようにして下さい。

2. Sonatype の JIRA に、デプロイ設定の依頼を投げる

Sonatype の JIRA の Community Support にチケットを投げます。

参考例

必須なのは、GroupId、Project URL、SCM url、UserName。

GroupId は Maven の GroupId です。自分が持つプロジェクトのドメインをいい感じにまとめる id を付けましょう。
Project URL は、コードやイシュー管理が行われている場所だったり、ランディングページ的な場所を指定しましょう。
SCM url は http://oss.sonatype.org。
UserName はデプロイする人の、Sonatype JIRA アカウント名を入れます。

チケットを投げると、2 ~ 3 日で返事が返ってきます。
最初のリリース版をデプロイしたら教えてねって書いてあるので、デプロイしたらコメントしましょう。

3. Maven にデプロイする準備をする

Gradle のプラグイン を使って準備をします。

まず、~/.gradle/gradle.propertiesを準備します。無ければ作って下さい。

このファイルの中身に、以下の行を追記します。

NEXUS_USERNAME=hogehoge
NEXUS_PASSWORD=oogggsss

signing.keyId=AABBCCDD
signing.password=safsfs
signing.secretKeyRingFile=~/.gnupg/secring.gpg

NEXUS_USERNAME は Sonatype JIRA のアカウント名、NEXUS_PASSWORD は Sonatype JIRA のアカウントのパスワードです。

また、ライブラリのリリース版をデプロイする際には、PGP 署名が必要です。
signing.* はその署名ファイルの情報となります。
署名ファイルがない場合はgpgコマンドで作って下さい。プロンプトで色々聞かれますが、好きなモノを設定して下さい。

signing.keyId は、gpg --list-secret-keys したときの、sec 2048R/AABBCCDD 2014-04-092048Rの後ろに付いている 8 桁の 16進数です。
signing.password は、署名のパスフレーズです。
signing.secretKeyRingFile は署名ファイルのパスを指定します。

その後、署名を管理するサーバに公開鍵をアップロードします。

gpg --keyserver hkp://pool.sks-keyservers.net --send-keys AABBCCDD

次に、プロジェクトの root にあるgradle.propertiesを編集します。
追記するのは以下の内容です。

VERSION_NAME=1.0.0
VERSION_CODE=1
GROUP=jp.yokomark

POM_DESCRIPTION=Library description
POM_URL=https://github.com/KeithYokoma/CompoundContainers
POM_SCM_URL=https://github.com/KeithYokoma/CompoundContainers
POM_SCM_CONNECTION=scm:git@github.com:KeithYokoma/CompoundContainers.git
POM_SCM_DEV_CONNECTION=scm:git@github.com:KeithYokoma/CompoundContainers.git
POM_LICENCE_NAME=The Apache Software License, Version 2.0
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENCE_DIST=repo
POM_DEVELOPER_ID=Hogehoge
POM_DEVELOPER_NAME=Hogehoge

バージョン番号だったり、グループIDだったり、ひと通り任意の内容を入れていきます。

次に、モジュールにもgradle.propertiesを用意します。無ければ作って下さい。
内容は以下のとおりです。

POM_NAME=My Library Name
POM_ARTIFACT_ID=MyLibrary
POM_PACKAGING=aar

PACKAGING を aar にすることで、Android の各種のライブラリ成果物を aar としてアップロードできるようになります。

最後に、ビルドスクリプトを修正します。
ライブラリモジュールのbuild.gradleに以下の行を追記します。

apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'

これで準備完了です。

4. デプロイする

./gradlew clean build uploadArchives

5. リリース作業をする

デプロイはステージングサーバに実行されます。このままだとリリースにはなりません。

ここに、Sonatype JIRA のアカウントでログインし、ステージングにある自分のリポジトリをリリースする作業をします。

左メニューの Build Promotion から Staging Repositories を選択し、自分のリポジトリを一覧から選択します。
下半分に表示されるタブから、リポジトリの中身を確認し、問題なければ、上半分のタブの下にある Close ボタンを押します。
しばらくするとバリデーションが走り、問題なければ Close が終わります。
Close が終わったら、Refresh ボタンで一覧を更新し、再度自分のリポジトリを選択して、Release ボタンを押します。

これでリリース作業が終了となります。

appendix. デプロイに失敗したら

Javadoc がどうの、とかで失敗した場合は、以下のスクリプトをモジュールのbuild.gradleに追記する。

afterEvaluate {
    javadocs.classpath += files(android.plugin.runtimeJarList)
}
44
44
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
44