バージョン: maven 3.0.4、リリース プラグイン 2.4.0
目標は、maven リリース プラグインを使用して、非インタラクティブな方法で複数の機能 (プロジェクト) を 1 つのステップでリリースすることです。私は使用します:http://maven.apache.org/maven-release/maven-release-plugin/examples/non-interactive-release.html
Svn 構造 :
http://host/svn/feature1/trunk | tags | branches
http://host/svn/feature2/trunk | tags | branches
http://host/svn/feature3/trunk | tags | branches
各機能には、特定のバージョン名を持つ pom.xml と scm url セクションがあります。
この構造では、すべての機能を 1 つのステップでリリースしたいと考えています (12 以上の機能があり、それらの間に依存関係があります...)。Maven リアクター プラグインは、すべてを適切な順序で展開およびリリースするために、大いに役立つと考えていました ;-) 次に、次の svn externals を使用して、svn に「ビルド/アセンブリ」プロジェクト ブランチを作成します。
feature1 http://host/svn/feature1/trunk
feature2 http://host/svn/feature2/trunk
...
svn externals を使用する目的は、フラットなワークスペースを持つことです (Maven リリース プラグインの問題を回避します...)。このビルド プロジェクトには、すべての機能のマルチ プロジェクト アグリゲーターである pom.xml が 1 つだけあります。
<modules>
<module>feature1</module>
<module>feature2</module>
<module>feature3</module>
...
</modules>
次に、maven release コマンドを使用します。
mvn -B release:clean release:prepare release:perform
次の release.properties で
project.rel.org.sample.test\:feature1=1.0.0-RC1
project.dev.org.sample.test\:feature1=1.0.0-RC2-SNAPSHOT
project.scm.org.sample.test\:feature1.developerConnection=scm\:svn\:http\://host/svn/feature1/trunk
project.scm.org.sample.test\:feature1.connection=scm\:svn\:http\://host/svn/feature1/trunk
project.rel.org.sample.test\:feature2=1.0.0-RC1
project.dev.org.sample.test\:feature2=1.0.0-RC2-SNAPSHOT
...
このファイルと -B 引数を使用すると、機能のバージョンをユーザーに尋ねる対話型の入力は必要ありません。したがって、ジョブはjenkins :Dを使用して起動できます...
このステップで:
- scm でコミットされた変更は問題ありません (scm の URL とバージョン)
- アーティファクトは適切に展開されています
- しかし、機能の scm タグは svn で作成されません...
ルートビルド/アセンブリ プロジェクトの scm タグのみが実行されています...
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Reactor Summary:
[INFO] [INFO]
[INFO] [INFO] build ..................................... SUCCESS [1.104s]
[INFO] [INFO] feature1 .................................. SUCCESS [0.187s]
[INFO] [INFO] feature2 .................................. SUCCESS [0.648s]
[INFO] [INFO] feature3 .................................. SUCCESS [0.370s]
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] BUILD SUCCESS
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Total time: 2.552s
[INFO] [INFO] Finished at: Thu Jan 03 14:45:37 CET 2013
[INFO] [INFO] Final Memory: 9M/22M
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] Cleaning up after release...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] build ............................................. SUCCESS [7.201s]
[INFO] feature1 .......................................... SKIPPED
[INFO] feature2 .......................................... SKIPPED
[INFO] feature3 .......................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
機能の SKIPPED ステータスは、概要では奇妙に見えます (ただし、コミットおよびクリーニング フェーズでは成功です)
問題を説明するのは本当に簡単ではありません。明確にしたいと思います...
誰も同じ問題に遭遇しましたか? この問題を解決するためのトリック/情報はありますか?