更新多模块 Maven项目中模块的版本号

我有一个多模块 maven 项目。我们打算将所有这些模块一起版本化。但截至目前,我正在每个模块 pom.xml 中结束硬编码版本,如下所示

我有一个多模块 maven 项目。我们打算将所有这些模块一起版本化。但截至目前,我正在每个模块 pom.xml 中结束硬编码版本,如下所示

<parent>
    <artifactId>xyz-application</artifactId>
    <groupId>com.xyz</groupId>
    <version>2.50.0.g</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>xyz-Library</artifactId>
<version>2.50.0.g</version>

和主要的父模块具有以下配置

<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>xyz-application</artifactId>
<version>2.50.0.g</version>
<packaging>pom</packaging>
775
Useversions:setfrom theversions-maven plugin:
mvn versions:set -DnewVersion=2.50.1-SNAPSHOT

它将调整多模块项目中的所有 pom 版本,父版本和依赖版本。

如果你犯了一个错误

mvn versions:revert

之后,或

mvn versions:commit

如果你对结果满意的话.

注意:此解决方案假设所有模块都使用聚合 pom 作为父 pom,这种情况在此答案时被认为是标准的。如果不是这样,请转到Garret Wilson's answer

91

给出的答案假设有问题的项目除了模块聚合之外还使用项目继承。

https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance_vs_Project_Aggregation

一些项目可能是模块的聚合,但在聚合器 POM 和聚合模块之间没有父子关系。(可能根本没有父子关系,或者子模块可能完全使用单独的 POM 作为“父”。)在这些情况下,给定的答案将不起作用。

经过大量的阅读和实验,发现有一种方法可以使用Versions Maven Plugin不仅更新聚合器 POM,还更新所有聚合模块;它是processAllModules选项。

mvn versions:set -DnewVersion=2.50.1-SNAPSHOT -DprocessAllModules

版本 Maven 插件不仅会更新所有包含的模块的版本,还将更新模块间的依赖关系!这是一个巨大的胜利,将节省大量时间并防止各种问题。

当然,不要忘记提交所有模块中的更改,您也可以使用相同的开关:

mvn versions:commit -DprocessAllModules

您可以决定完全放弃备份 POMS,并在一个命令中执行所有操作:

mvn versions:set -DnewVersion=2.50.1-SNAPSHOT -DprocessAllModules -DgenerateBackupPoms=false
41

如果你想完全自动化的过程(即你想增加版本号,而不必知道当前的版本号是什么),你可以这样做:

mvn build-helper:p-version versions:set -DnewVersion=\${pdVersion.majorVersion}.\${pdVersion.minorVersion}.\${pdVersion.nextIncrementalVersion} versions:commit
28

您可能需要查看 Maven 发布插件的release:update-versions目标。它将更新父级的版本以及其下的所有模块。

更新:请注意,上面是发布插件,如果您不发布,则可能要使用versions:set

mvn versions:set -DnewVersion=1.2.3-SNAPSHOT

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(831)
Google表格-条件格式:为整行着色的多个条件
上一篇
与网站的连接已重置。错误代码:INET_E_DOWNLOAD_FAILURE
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(68条)