これは、マルチモジュールと親の POM を別々に持っているという点で、この前の質問とは少し異なるバージョンです: Maven プロジェクトでは、すべての子モジュールと親のバージョンを自動的に更新するにはどうすればよいですか?
POM を更新して、開発スナップショット バージョンからリリース バージョン番号に移行しようとしています。私は問題をググって死に至らしめ、リリースとバージョンのプラグインを試しましたが、かなり単純なセットアップを処理できるものは何もないようです.
公開された Maven のベスト プラクティスに従い、避けられる場合は情報を複製しないように努めた結果、マルチモジュール プロジェクトの構造は次のようになりました。共通の pom-parent.xml によって定義される単一のバージョンがあります。B は A に依存します。
標準のプラグインが、かなり基本的な設定と思われるものを処理できないことに少し驚きました。何か不足しているのでしょうか?
私が思いついた回避策はどれも完全に満足のいくものではありません:
プロパティとして製品バージョンを定義するのは少し不安定です。同じモジュール ソースが、ユーザー settings.xml またはその他のトリックのために異なるバージョンを取得する可能性があります。
ルート pom.xml と pom-parent.xml をマージし、ルート pom で現在管理している製品全体のビルド ステップを専用モジュールに移動します。標準プラグインが機能することを願っています...試していません。
なにか提案を?
root/pom-parent.xml: 以下のすべての POM の親
<project...>
<groupId>acme</groupId>
<artifactId>ParentPom</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
root/pom.xml: A と B をサブモジュールとするマルチモジュール プロジェクト
<project ...>
<parent>
<groupId>acme</groupId>
<artifactId>ParentPom</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>acme</groupId>
<artifactId>Product</artifactId>
<packaging>pom</packaging>
<modules>
<module>A</module>
<module>B</module>
</modules>
ルート/A/pom.xml:
<project ...>
<parent>
<groupId>acme</groupId>
<artifactId>ParentPom</artifactId>
<relativePath>../parent-pom.xml</relativePath>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>acme</groupId>
<artifactId>A</artifactId>
<packaging>jar</packaging>
ルート/B/pom.xml:
<project ...>
<parent>
<groupId>acme</groupId>
<artifactId>ParentPom</artifactId>
<relativePath>../parent-pom.xml</relativePath>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>acme</groupId>
<artifactId>B</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>acme</groupId>
<artifactId>A</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>