ゴール
モジュールごとにタグを付けたマルチモジュール Maven リリース
状況
Maven ベースの Java プロジェクトのプロジェクト構造を次のように仮定します。
xx-parent
xx-moduleA
xx-moduleB
xx-moduleC/submodule1
xx-moduleC/submodule2
xx-moduleC/submodule3
Subversion のプロジェクト構造は次のとおりです。
xx-parent/trunk
xx-moduleA/trunk
xx-moduleB/trunk
xx-moduleC/trunk/submodule1
xx-moduleC/trunk/submodule2
xx-moduleC/trunk/submodule3
私の目標は、リリースを実行するときにモジュールごとにタグを作成することです:
xx-parent/tags/xx-parent-1.0
xx-moduleA/tags/xx-moduleA-1.0
xx-moduleB/tags/xx-moduleB-1.0
xx-moduleC/tags/xx-moduleC-1.0
これまで、各モジュールは個別にビルドおよびリリースされていました。プロジェクトが大きくなるにつれて (30 モジュール)、リリースをビルドする時間が増えました。プロジェクトをマルチモジュール セットアップに変更して、リアクターのビルドとリリースを実行したいと考えています。ビルドは問題ないようですが、モジュールごとにタグを作成するのは問題です。
maven-release-plugin は、プロジェクト/リリース全体に対して単一のタグのみを作成することを主張しているようです。モジュールごとのタグなど、複数のタグを作成する方法を探しています。
これまでに試したこと
- すべてのサブモジュールをチェックアウトする xx-all Subversion エイリアスを作成して、それらを参照できるようにします
<module>../xx-moduleB</module>
- モジュールごとにコミットしましたが、モジュールごとにタグ付けしなかったcommitByProjectを有効にします。見る
- には各モジュールごとに独自の
<scm>
要素がありますpom.xml
が、リアクタ リリースの実行時には使用されません。 mvn --batch-mode -DcommitPerProject=true -DautoVersionSubmodules=true -Drelease.version=1.0.6 release:prepare release:perform
問題
- maven-release-plugin はモジュールごとに svn タグを作成しません
- maven-release-plugin
<scm>
は、xx-parent タグの下にネストされた「トランク」タグなど、無効な URL でタグを上書きします
質問
このプロジェクトを Maven リリース プロセス、マルチモジュール レイアウトでセットアップし、モジュールごとに個別のタグを取得するにはどうすればよいですか?
参考文献
http://jira.codehaus.org/browse/MRELEASE-261 (クローズ) および MRELEASE-561 (オープン)