maven release plugin を使うとリリース作業が超簡単になる〜
maven release plugin でやったこと
prepare
と perform
を使いました〜!
mvn release:prepare
でやってくれること
- コミットされていないコードがないかチェックする
- 依存関係(
dependencies
)に定義しているライブラリにSNAPSHOTバージョンのものがないかチェックする - pomのSNAPSHOTバージョンをリリースバージョンに書き換える(1.0.1-SNAPSHOT -> 1.0.1)
- テストを実行して、正常に動作するか確認する
- pomの変更をコミットする
- Gitにタグをつける(デフォルトはSubversionになっているのでここは設定で変更した)(v1.0.1)
- pomを新しいSNAPSHOTバージョンに書き換える(1.0.1 -> 1.0.2-SNAPSHOT)
- pomの変更をコミットする
mvn release:perform
でやってくれること
- Gitのタグにソースコードを切り替える
- pomに書いたゴールを実行する
pomの設定
こんな感じで設定を追加しました!
<!-- scmの指定。デフォルトではsubversionになってしまうので、gitのリポジトリを指定する --> <scm> <connection>scm:git:http://~~~~.git</connection> <developerConnection>scm:git:http://~~~~~.git</developerConnection> </scm> (中略) <!-- プロジェクト内で作っているシステムなのでGnuPGのサインをOFFにする --> <properties> <gpg.skip>true</gpg.skip> </properties> (中略) <!-- maven release plugin の設定 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.5.3</version> <configuration> <!-- mvn release:profileで何をするか --> <releaseProfiles>deploy</releaseProfiles> <!-- Gitのタグ名をどうするか --> <!-- 『@{project.version}』にpomのバージョン番号がはいる(1.0.1など) --> <tagNameFormat>v@{project.version}</tagNameFormat> </configuration> </plugin> </plugins>
人の手でやると辛くなるので、積極的に使っていきたい。