私は次のPOM構造を持っています:
/home/projects/parent/pom.xml
<project>
<groupId>com.my.group</groupId>
<artifactId>project-super-parent</artifactId>
<version>${major.version}.${minor.version}</version>
<packaging>pom</packaging>
<properties>
<major.version>7</major.version>
<minor.version>5</minor.version>
<current.release.version>${major.version}.${minor.version}-SNAPSHOT</current.release.version>
...
</properties>
....
</project>
/home/projects/module1/pom.xml
<project>
<groupId>com.my.group</groupId>
<artifactId>module1</artifactId>
<version>${current.release.version}</version>
<packaging>jar</packaging>
<parent>
<groupId>com.my.group</groupId>
<artifactId>project-super-parent</artifactId>
<version>${major.version}.${minor.version}</version>
<relativePath>../parent</relativePath>
</parent>
...
</project>
モジュールはその親のバージョンを認識していないことに注意してください。親で定義されたプロパティを使用するため、これは鶏と卵の問題のようなものです。
奇妙なことは、これが機能するということです。したがって、製品のメジャーバージョンを変更したい場合、単一の pom ファイル (親) のみを変更します。
このソリューションの制限は、すべての POM ファイルをファイル システムに配置する必要があることです。
私の質問は次のとおりです。それはどのように正確に機能しますか?Maven 3 にアップグレードすると動作しなくなる可能性はありますか? これは一般的に使用されている解決策ですか、それともシステムの悪用ですか?
現在 Maven 2.2.1 と Java 7 を使用しています。