消除Maven POM冗余
我有一个父POM与以下配置
com.example parent 1.2-SNAPSHOT
从此父POMinheritance的每个子项目都具有如下配置:
com.amadeus.jcp.ui.skinning.skinning-system parent 1.2-SNAPSHOT
我希望所有这些项目版本号保持同步。 目前,如果我将父版本更改为1.3,则必须将所有子项目版本更改为1.3。 有什么办法可以避免重复所有子项目中的版本号吗?
我尝试用以上代替
com.amadeus.jcp.ui.skinning.skinning-system parent
和
com.amadeus.jcp.ui.skinning.skinning-system parent ${project.version}
但这些都不奏效。 我正在使用Maven 2.1.0版。
谢谢,唐
我尝试用(…)和(…)替换上面的内容,但这些都不起作用。 我正在使用Maven 2.1.0版。
不可能。 使用Maven 2.x,您必须在子模块中声明parent
元素,并且parent
元素必须包含硬编码version
(您不能省略它并且您不能使用属性,请参阅此前一个答案和MNG-624 )。
但是,Maven 3.1将支持无版本的父元素 (参见前面的答案 )。
同时,一些插件可以使维护更容易,如Maven Release Plugin或Versions Maven Plugin及其versions:set
或versions:update-child-modules
目标。
你不应该在子模块中定义一个版本…但你必须在父定义中给出…
+--- root +--- pom.xml (Parent) +--- module1 +-- pom.xml (child 1)
您还应该在您的孩子中定义一个relativePath …
com.example parent 1.2-SNAPSHOT ../pom.xml ... ...
如果你这样做了,你永远不应该在你的父母那里手动更改版本号…让发布插件完成工作它将改变所有孩子(父母)的版本条目appropietaley …如果你真的需要改变事情有时候使用maven-version-plugin …