我可以帮助您翻译以下关于IT技术的内容,涉及 Maven 3.x 的使用和 parent pom 和 child pom 的结构问题。
我正在使用 Maven 3.x,在我的父POM和子POM中有以下结构。
当我使用mvn install构建我的构件时,我可以看到jars在我的.m2文件夹中被构建,但是project.version没有被实际的版本1.0-SNAPSHOT替换。
我正在使用 Maven 3.x,在我的父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替换。
- 父POM和/或子POM在我的.m2存储库中的每个构件中是否都指定了版本号,还是会使用project.version?
- 我应该在父POM中指定project.version作为属性吗?Maven文档说明默认情况下可用project.version。我也尝试了在父POM中删除project.version属性后执行mvn install,但是生成的构件仍然在我的.m2文件夹中将版本设置为{project.version}而不是实际版本。
- 如何在父POM中设置一个版本,并使所有的子POM都具有相同的版本。例如,我想在工单POM中设置一个版本,工单客户端POM也应该继承相同的版本。
<version>
,不能依赖于project.version
属性:它不会在<parent>
元素中被评估。 - Tunaki<parent>
元素中使用<version>${project.version}</version>
。你必须使用<version>1.0-SNAPSHOT</version>
。 - Tunaki