消除Maven POM冗余 - java

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

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

从该父POM继承的每个子项目都有一个如下配置:

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

我希望所有这些项目版本号都保持同步。目前,如果将父版本更改为1.3,则必须将所有子项目版本更改为1.3。有什么办法可以避免在所有子项目中重复版本号?

我试图用替换上面的

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

<parent>
    <groupId>com.amadeus.jcp.ui.skinning.skinning-system</groupId>
    <artifactId>parent</artifactId>
    <version>${project.version}</version>
</parent>

但是这些都不起作用。我正在使用Maven版本2.1.0。

谢谢,

参考方案

我试图用(...)和(...)替换上面的内容,但是这些都不起作用。我正在使用Maven版本2.1.0。

不可能。使用Maven 2.x,必须在子模块中声明parent元素,并且parent元素必须包含硬编码的version(您不能忽略它,也不能使用属性,请参见this previous answer和MNG-624)。

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

同时,某些插件可以使维护变得更容易,例如Maven Release Plugin或Versions Maven Plugin及其 versions:setversions:update-child-modules 目标。

Java中的<<或>>>是什么意思? - java

This question already has answers here: Closed 7 years ago. Possible Duplicate: What does >> and >>> mean in Java?我在一些Java代码中遇到了一些陌生的符号,尽管代码可以正确编译和运行,但对于括号在此代码中的作用却感…

菱形运算符<>是否等于<?> - java

我在util.TreeSet类中发现,其中一个构造函数正在使用具有空泛型类型的新TreeMap调用另一个构造函数。 public TreeSet(Comparator<? super E> comparator) { this(new TreeMap<>(comparator)); } new TreeMap<>是什么意思…

通过Maven编译器插件不会发生有限的包含和排除 - java

我正在使用3.6.0版的maven编译器插件,在此我们只想在特定文件夹中编译一个文件,而在该位置编译所有其他文件。例如:在文件夹应用程序中有14个文件,从那我只希望编译1个文件,但它编译了所有文件,如果我要排除,则它也不起作用。 <sourceDirectory>${basedir}/../src/java</sourceDirectory…

与哪些运算符>>兼容 - java

我这里没有什么代码int b=3; b=b >> 1; System.out.println(b); 它可以完美工作,但是当我将变量b更改为byte,short,float,double时,它包含错误,但是对于变量int和long来说,它可以完美工作,为什么它不能与其他变量一起工作? 参考方案 位移位运算符(例如>>)与任何整数类型兼…

休眠映射<键,设置<值>> - java

我有以下表格:@Entity @Table(name = "events") Event --id --name @Entity @Table(name = "state") State --id --name @Entity @Table(name = "action") Action --id …