そこに仁義はあるのか(仮)

略してそこ仁!

maven release pluginを使ってリリース作業を効率化する

maven release plugin を使うとリリース作業が超簡単になる〜

maven release plugin でやったこと

prepareperform を使いました〜!

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>

人の手でやると辛くなるので、積極的に使っていきたい。