1. ホーム
  2. 遺産相続

[解決済み】Mavenプロジェクトのバージョン継承 - 親バージョンを指定する必要があるか?

2022-04-07 06:53:43

質問

親プロジェクト:A、サブプロジェクト:Bの2つのプロジェクトを持っています。

A/pom.xmlです。

<groupId>com.dummy.bla</groupId>
<artifactId>parent</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>pom</packaging>

そして、B/pom.xmlには。

    <parent>
        <groupId>com.dummy.bla</groupId>
        <artifactId>parent</artifactId>
        <version>0.1-SNAPSHOT</version>     
    </parent>

    <groupId>com.dummy.bla.sub</groupId>
    <artifactId>kid</artifactId>

Bは親からバージョンを引き継ぎたいので、私の場合、唯一の場所は 0.1-SNAPSHOT でございます A/pom.xml . しかし、もし私が <version>0.1-SNAPSHOT</version> から B/pom.xml の下にある親セクションで、maven は親のバージョンがないことを訴えます。

を使用する方法はありますか? ${project.version} などにすることで 01.-SNAPSHOT を両方のpomで使用できますか?

解決方法は?

EDITです。 Maven 3.5.0以降では、この問題を解決するために ${revision} プレースホルダーを使用します。参照 FrVaBeの回答 をご覧ください。以前のMavenバージョンについては、以下の私のオリジナルの回答を参照してください。


いいえ、そんなことはありません。必ず親のバージョンを指定する必要があります。幸いなことに、ほとんどの場合、モジュールのバージョンとして望ましいものが継承されます。また、この親のバージョン宣言は Maven Release Plugin によって自動的にバンプされるので、Maven Release Plugin を使ってバージョンをリリースしたりバンプしたりする限り、2か所にバージョンがあっても問題はありません。

この動作が、実際にはかなり問題なく、必要な柔軟性を与えてくれる場合があることに注意してください。時には、前の親のバージョンの一部を継承して使いたい場合もありますが、これは主流ではありません。