バッチタスク プラグインを使用して内部リポジトリに Maven リリースを行うように Hudson をセットアップしています。私はそれをやっています:
mvn --batch-mode release:prepare
mvn --batch-mode release:perform
人々が使用した他の方法と、それらの方法の長所と短所に興味があります。また、人々が遭遇した落とし穴。
バッチタスク プラグインを使用して内部リポジトリに Maven リリースを行うように Hudson をセットアップしています。私はそれをやっています:
mvn --batch-mode release:prepare
mvn --batch-mode release:perform
人々が使用した他の方法と、それらの方法の長所と短所に興味があります。また、人々が遭遇した落とし穴。
私はいくつかの理由で常に手作業でリリースを行う傾向がありました。まず、ロールバックする必要がある場合は、元のリリース場所に戻ってそれを実行できると簡単です。次に、プロセスの一部としてすべてのスナップショットの依存関係を解決する必要があるためです。
私たちの開発プロセスでは、修正にアップグレードが必要になるまで、以前のリリースバージョンの現在のビルドの外部に依存関係を残しています。これは、Nexus、Mavenなどをリリースしている場合、スナップショットが表示されることを意味し、最初にそれらをリリースする必要があることを意味します。このプロセスは、前回のリリース以降に変更された内容によって異なるため、実際には自動化できません。
とは言うものの、ビルド専用の特別なマシン(Sonatypeでは単なるvm)がセットアップされています。これは、ビルドに誤って影響を与える可能性のある環境変更(jdkの変更など)が発生しないことを保証するために行われます。また、いつでも準備ができているため、誰でもリリースプロセスを簡単に理解できます。
最近、m2release プラグインが気になりました。よさそうだった。とはいえ、リリース プロセスが完全に「pom-tweaking-free」であることを望んでいました。つまり、完全なリリースを処理するには、4 つの入力パラメーターを提供する必要があるということです。
最初の 2 つは許容可能なデフォルトです。バグ修正バージョン桁でのバージョン バンピングは、私にとってはまったく問題ありません。
番号 4 は pom で指定できます。変わりません。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tagBase>https://example.com/svn/myProject/releases</tagBase>
</configuration>
</plugin>
ボタンを押すだけでリリースを完全に自動化するのを妨げているのは 3 つ目です。デフォルトのリリース タグ ラベルでは対応できないため、次のように指定する必要があります。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tag>release-${pom.version}</tag>
<tagBase>https://example.com/svn/myProject/releases</tagBase>
</configuration>
</plugin>
さて、これはまさに私が必要としていたものかもしれませんが、最後に -SNAPSHOT が付いた svn タグを持つことになります。:( そのため、Hudson ジョブ構成でタグパラメーターを渡す必要があります。さらに、作成するリリースごとに変更する必要があります...これは、まさに私が必要としているものではありません。
結局のところ、hudson に maven2 タイプのプロジェクト + m2release hudson プラグイン + maven リリース プラグインを正しく構成することは、私がこれまで見てきたすべてのリリース プロセスの母です。完璧ではありませんが、面倒な作業を大幅に省くことができました。
JS。
Hudson Mavenリリースプラグインを実験してきましたが、ビルドファイルにパスワードをハードコーディングするなどの悪意を持たずに、リリースを適切にクレジットすることに少し挑戦しています。
私は常に明らかな長所と短所を持って手動でリリースをトリガーしてきました:-)