我正在使用Maven 3.x,我的父pom和子pom中有以下结构。
父母pom
<groupId>com.mygoogle.sample</groupId>
<artifactId>workorder</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<project.version>1.0-SNAPSHOT</project.version>
</properties>
我有一个小孩pom,如下所示
<parent>
<groupId>com.mygoogle.sample</groupId>
<version>${project.version}</version>
<artifactId>workorder</artifactId>
</parent>
<artifactId>workorder-client</artifactId>
<packaging>jar</packaging>
当我使用mvn install构建我的工件时, 我看到jars在我的.m2文件夹中构建,但project.version没有替换为实际版本,即1.0-SNAPSHOT。
每个工件的.m2存储库中的父pom和/或子pom是否具有指定的版本,或者是project.version
我是否应该将project.version指定为父pom中的属性。 maven文档声明project.version可以通过defualt获得。我还尝试了mvn install post删除了我的父pom中的project.version属性,但生成的工件仍然在我的.m2文件夹中的版本为{project.version}而不是实际版本
如何在我的父pom中设置版本并让我所有的孩子pom具有相同的版本。例如,我想在workorder pom中设置一个版本,而workorder-client pom也应该继承相同的版本。
答案 0 :(得分:5)
你父母的pom应该是:
<groupId>com.mygoogle.sample</groupId>
<artifactId>workorder</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
你的孩子应该像:
<parent>
<groupId>com.mygoogle.sample</groupId>
<version>1.0-SNAPSHOT</version>
<artifactId>workorder</artifactId>
</parent>
<artifactId>workorder-client</artifactId>
<packaging>jar</packaging>
这将有助于顺利维护父母和孩子之间的版本控制 下次要更改版本时,只需在指向父pom目录时使用以下命令。
mvn versions:set -DnewVersion=2.0-SNAPSHOT