gpt4 book ai didi

Maven - 控制父 pom 和子 pom 以继承父 pom 版本

转载 作者:行者123 更新时间:2023-12-04 21:58:52 26 4
gpt4 key购买 nike

我正在使用 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 构建我的 Artifact 时,我看到在我的 .m2 文件夹中构建了 jar,但是 project.version 没有替换为实际版本,即 1.0-SNAPSHOT。

  1. 我的每个 Artifact 的 .m2 存储库中的父 pom 和/或子 pom 是否具有指定的版本,或者是 project.version

  2. 我什至应该将 project.version 指定为我父级 pom 中的一个属性吗? Maven 文档声明 project.version 默认可用。我还尝试 mvn install post 删除我父 pom 中的 project.version 属性,但生成的 Artifact 在我的 .m2 文件夹中仍然具有 {project.version} 版本,而不是实际版本

  3. 如何在我的父 pom 中设置一个版本并让我的所有子 pom 具有相同的版本。例如,我想在 workorder pom 中设置一个版本,workorder-client pom 也应该继承相同的版本。

最佳答案

你的父 pom 应该是这样的:

<groupId>com.mygoogle.sample</groupId>
<artifactId>workorder</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>

你的 child pom 应该是这样的:

<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

关于Maven - 控制父 pom 和子 pom 以继承父 pom 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40020859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com