Java 消除Maven POM冗余

Java 消除Maven POM冗余,java,maven-2,Java,Maven 2,我有一个具有以下配置的父POM <groupId>com.example</groupId> <artifactId>parent</artifactId> <version>1.2-SNAPSHOT</version> com.example 父母亲 1.2-1 从父POM继承的每个子项目都有如下配置: <parent> <groupId>com.amadeus.jcp.ui.skinn

我有一个具有以下配置的父POM

<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>1.2-SNAPSHOT</version>
com.example
父母亲
1.2-1
从父POM继承的每个子项目都有如下配置:

<parent>
    <groupId>com.amadeus.jcp.ui.skinning.skinning-system</groupId>
    <artifactId>parent</artifactId>
    <version>1.2-SNAPSHOT</version>
</parent>

com.amadeus.jcp.ui.skining.skining-system
父母亲
1.2-1
我希望所有这些项目版本号保持同步。目前,如果我将父版本更改为1.3,那么我必须将所有子项目版本更改为1.3。有没有办法避免在所有子项目中重复版本号

我试着用

<parent>
    <groupId>com.amadeus.jcp.ui.skinning.skinning-system</groupId>
    <artifactId>parent</artifactId>
</parent>

com.amadeus.jcp.ui.skining.skining-system
父母亲


com.amadeus.jcp.ui.skining.skining-system
父母亲
${project.version}
但这两种方法都不管用。我使用的是Maven版本2.1.0

谢谢,
不要定义版本。。。在子模块中,但您必须在父定义中给出它

+--- root
      +--- pom.xml (Parent)
      +--- module1
             +-- pom.xml (child 1)
你也应该在你的孩子身上定义一个relativePath

<parent>
    <groupId>com.example</groupId>
    <artifactId>parent</artifactId>
    <version>1.2-SNAPSHOT</version>
    <relativePath>../pom.xml</version>
</parent>
<groupId>...</groupId>
<artifactId>...</artifactId>

com.example

我试着用(…)和(…)替换上面的内容,但这两个都不起作用。我使用的是Maven版本2.1.0

不可能。在Maven 2.x中,必须在子模块中声明
父元素
,并且
父元素
必须包含硬编码的
版本
(不能省略它,也不能使用属性,请参见和)

但是,Maven 3.1将支持无版本的父元素(请参阅)


同时,一些插件可以使维护变得更容易,如或及其或目标。

我很确定relativePath默认为
。/pom.xml
,因此添加它不会有任何区别。我没有在子模块中定义版本,我只是引用了子模块所依赖的父模块的版本。后者是我试图消除的,因为它将始终是父模块的当前版本。“但它使事情更清楚地理解”是正确的,但要付出额外配置的代价。在这种情况下,我愿意用更少的清晰度换取更少的配置,YMMV。啊…似乎是一个误解…在父区域的版本是必要的。不可能消除这一点。如果您需要更改,请使用发布插件或版本插件。谢谢Pascal,我想我只能等到我的公司升级到Maven 3.1,尽管在这之前太阳可能会熄灭。@Don不客气<代码>版本:在太阳下线之前,set
是一个不错的解决方案:)
<parent>
    <groupId>com.example</groupId>
    <artifactId>parent</artifactId>
    <version>1.2-SNAPSHOT</version>
    <relativePath>../pom.xml</version>
</parent>
<groupId>...</groupId>
<artifactId>...</artifactId>