我有以下POM結構:Maven - 如何/爲什麼/它是否應該將父版本設置爲基於父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
這是怎麼工作的,CAU的如果我嘗試你的父母,它會完全失敗。此外,我會建議使用Maven 3而不是Maven 2. – khmarbaise
@khmarbaise它的工作原理,我不能把實際的POM放置在這裏,但它確實。 Maven 3升級在待辦事項列表:)將很快到達那裏 – RonK