More Related Content
Similar to 20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Similar to 20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java (20)
More from Y Watanabe (16)
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
- 8. さっきのデモみたいな流れに至るまでのコツ
• pom.xmlを調整する
• <groupId>, <artifactId>,親pomの指定
• GPG鍵とmaven-gpg-plugin
• *.md5/*.sha1チェックサムはmaven-install-plugin
• maven-sources-plugin, maven-javadoc-plugin
• アップロード権限をもらうための申請
• Mixer2の場合はどうだった?
• ビルドとリリースに関する3つのポイント
• 仮想OS + Jenkinsを使う
• maven-release-pluginのことを忘れる
• 細かいバージョン番号を自分で決めない
8
今日の話は
ここだけ
各自ググる
あるいは mixer2
のpomを参考に。
- 9. • pom.xmlを調整する
• <groupId>, <artifactId>,親pomの指定
• GPG鍵とmaven-gpg-plugin
• *.md5, *.sha1 チェックサムはmaven-install-plugin
• maven-souces-plugin, maven-javadoc-plugin
• アップロード権限をもらうための申請
• Mixer2の場合はどうだった?
• ビルドとリリースに関する3つのポイント
• 仮想OS + Jenkinsを使う
• maven-release-pluginのことを忘れる
• 細かいバージョン番号を自分で決めない
9
- 10. アップロード権限をもらう
1. 大きなプロジェクトでは自前のリポジトリサーバをセントラル
リポジトリサーバが直接rsyncしてくれる。
例: Apache Commons Project
例: Spring Framework Project
2. 小さいプロジェクトの場合は http://oss.sonatype.org に直
接アップする。
1. 申請すれば<groupId>ごとにアップロード権限をくれる。
例: アカウント”nabedge”は<groupId>org.mxier2</
groupId>の配下ならどんなartifactでも登録可能
2. とりあえず本家の解説を一生懸命読みましょう。
https://docs.sonatype.org/display/Repository/Sonatype
+OSS+Maven+Repository+Usage+Guide
10
- 11. Mixer2の場合はどうだった?
1. mixer2.org というドメイン名を取得
2. http://mixer2.org/ にあらかじめmaven siteで作ったページ
を用意。もちろん<groupId>はorg.mixer2
3. 自分のメールアドレスでgpg鍵つくって鍵サーバに登録
4. pom.xmlを調整
5. mvn deploy するとステージングリポジトリにUPされる
6. 3で使ったメールアドレスでSonatypeのJIRAにアカウント登
録&チケットを作成。
7. すんなりリポジトリへのアクセス権をくれた。
8. NEXUSにJIRAアカウントでログインし、ステージング状態
のartifactをリリースするとセントラルリポジトリへ反映される
※以降のリリースでは5と8の作業だけでよい。
11
- 12. • pom.xmlを調整する
• <groupId>, <artifactId>,親pomの指定
• GPG鍵とmaven-gpg-plugin
• *.md5, *.sha1 チェックサムはmaven-install-plugin
• maven-souces-plugin, maven-javadoc-plugin
• アップロード権限をもらうための申請
• Mixer2の場合はどうだった?
• ビルドとリリースに関する3つのポイント
• 仮想OS + Jenkinsを使う
• maven-release-pluginのことを忘れる
• 細かいバージョン番号を自分で決めない
12
- 13. なぜ仮想OS + Jenkinsでやるのか
1. ビルド&リリースに使うコマンドやその実行手順を間違えない
2. ビルドした記録と成果物を保存しやすい
3. 異なるJDK/JREでのmvn testを実行しやすい
• mixer2はJRE同梱のJAXB実装に依存している。
Java6とJava7とでJAXB実装のバージョンが微妙に異なる。
• なので、Java7でのmvn testもいつでもやれるようになってる。
4. 確実に環境を一定に保てる
5. バックアップしやすい
• 「ソースはgithubに入ってるから大丈夫」では甘い。
• JDK/JRE環境、gpg署名用の秘密鍵、ビルドジョブの設定(≒ビルド
とリリースの手順そのもの)、過去の成果物、etcetc…
• ↑うっかり失うと再構築が面倒くさいという意味でダメージ大
• 仮想OSのイメージファイルで丸ごとバックアップしてしまえ!
13
- 14. • pom.xmlを調整する
• <groupId>, <artifactId>,親pomの指定
• GPG鍵とmaven-gpg-plugin
• *.md5, *.sha1 チェックサムはmaven-install-plugin
• maven-souces-plugin, maven-javadoc-plugin
• アップロード権限をもらうための申請
• Mixer2の場合はどうだった?
• ビルドとリリースに関する3つのポイント
• 仮想OS + Jenkinsを使う
• maven-release-pluginのことを忘れる
• 細かいバージョン番号を自分で決めない
14
- 15. maven-release-pluginのことを忘れる
1. mvn release:prepare release:perform のように簡単
なコマンド一発にできるが、pom.xmlがややこしくなり
がち。
2. どうせjenkinsを使うのだから、pom.xmlにややこしい設
定を書く代わりにビルドジョブ上にUNIXコマンドを書く
ようにするほうがわかりやすい&メンテしやすい。
3. 「maven-release-pluginは、-SNAPSHOTなversion指
定が自分自身や依存先に指定されていないかまで
チェックしてくれるんだぜ!」
→そういうのも最近はセントラルリポジトリ(のステージ
ング環境)にUPする段階で自動チェックしてくれるから
必ずしも自分でやらなくてもいい。
15
- 17. • pom.xmlを調整する
• <groupId>, <artifactId>,親pomの指定
• GPG鍵とmaven-gpg-plugin
• *.md5, *.sha1 チェックサムはmaven-install-plugin
• maven-souces-plugin, maven-javadoc-plugin
• アップロード権限をもらうための申請
• Mixer2の場合はどうだった?
• ビルドとリリースに関する3つのポイント
• 仮想OS + Jenkinsを使う
• maven-release-pluginのことを忘れる
• 細かいバージョン番号を自分で決めない
17