モジュールごとにSVNタグを使用したMavenリリースセットアップ
-
24-10-2019 - |
質問
ゴール
モジュールごとにタグを使用してマルチモジュールMavenリリース
状況
MavenベースのJavaプロジェクトの次のプロジェクト構造を想定してください。
xx-parent
xx-moduleA
xx-moduleB
xx-moduleC/submodule1
xx-moduleC/submodule2
xx-moduleC/submodule3
転覆のプロジェクト構造は次のとおりです。
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は、プロジェクト/リリース全体に1つのタグのみを作成することを主張しているようです。モジュールごとのタグなど、複数のタグを作成する方法を探しています。
私がこれまでに試したこと
- すべてのサブモジュールをチェックアウトする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>
無効なURLを備えたタグ、例えばネストされた「トランク」 - xx-parentタグの下のタグ
質問
Mavenリリースプロセス、マルチモジュールレイアウトでこのプロジェクトを設定して、モジュールごとに個別のタグを取得するにはどうすればよいですか?
参照
http://jira.codehaus.org/browse/mrelease-261 (閉じた)およびMRELEASE-561(オープン)
解決
ArnaudHéritier(Apache Maven PMCメンバー)によると、
Mavenは、Module-A V0.1、Module-B V0.3などの複合アプリケーションを処理できません。
Mavenは、プロジェクトと彼のすべてのサブモジュールをユニークなセットと考えています。
見る: http://blog.aheritier.net/maven-release-plugin-2-0/ (2010年6月9日)
たぶん、Maven 3で状況が変わったのでしょうか?