6

ゴール

モジュールごとにタグを付けたマルチモジュール 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 (オープン)

4

1 に答える 1

1

Arnaud Héritier (Apache Maven PMC メンバー) によると、
Maven はモジュール A v0.1、モジュール B v0.3 のような複合アプリケーションを処理できません。
Maven は、プロジェクトとそのすべてのサブモジュールを一意のセットと見なします。

参照: http://blog.aheritier.net/maven-release-plugin-2-0/ (2010 年 6 月 9 日)

Maven 3 以降、状況が変わったのではないでしょうか?

于 2011-12-14T17:42:42.337 に答える