、マルチモジュール、マルチプロジェクト、親POMなどについてかなりのヒントを見つけましたmaven-release-plugin
が、それらはすべて私が持っているものに完全には適合しません:
私はいくつかのプロジェクトを持っています (簡略化されたケースは 2 つです:project-common
とproject-impl
)互いに多少分離しており、別々の git リポジトリで開発されていますが、通常は一緒にリリースされています。この目的のために、以下project-common/pom.xml
が含まれます。
<groupId>de.tarent.example</groupId>
<artifactId>project-common</artifactId>
<version>1.5.1.4-SNAPSHOT</version>
…そして以下をproject-impl/pom.xml
含む:
<groupId>de.tarent.example</groupId>
<artifactId>project-impl</artifactId>
<version>1.5.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>de.tarent.example</groupId>
<artifactId>project-common</artifactId>
<version>${project.version}</version>
</dependency>
親 POMはありません。
ここでの考え方は、通常は のバージョンをproject-common
すべてのプロジェクトに使用することですが、1 つのプロジェクトのみを個別にリリースできる場合もあります。そのような場合、もちろん、依存関係のバージョンを手動で変更する必要がありますが、それは問題ありません。
現在、Jenkins の「Perform Maven Release」を使用してリリースを作成しています。(まあ、私たちは望んでいます。プロジェクトは最近までリリースできなかったので、開発者は手動で作成し、一時ファイル、未使用のファイル、ローカルの変更、XML 構成の LDAP パスワード、エディター.swp
ファイルなどを完備しました。理由がわかります。 Java™やMavenやJenkinsを知らなかったにもかかわらず、私はこれを変更する任務を負っていました。
のリリースproject-common
は問題なく行わproject-impl
れますが、最初のフェーズで失敗し、SNAPSHOT 依存関係がないことを確認します。まあまあ。( project-common
1 つしかありません。) をオーバーライドしmaven-release-plugin
て SNAPSHOT チェックをスキップすることはできません。親 POM を使用しても、ここでは機能しません。これらは完全に別個のリポジトリであり、場合によっては個別にリリースされるためです。では、Jenkins と Maven Release の快適さを維持しながらこれを行うにはどうすればよいでしょうか?
続けてください: 自分の質問に答えてください - あなたの知識、Q&A スタイルを共有してください.</p>