更新多模块 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

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

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

相关推荐

  • java maven是什么一种用于Java项目管理和构建的开源工具

    Java Maven是一种构建工具,它可以帮助开发者管理项目的依赖关系,构建和发布项目。它使用XML格式的文件来描述项目的构建规则,并且可以自动下载依赖的库,从而减少开发者的工作量。…

    2023-07-01 15:58:19
    0 90 55
  • java项目构建工具:使用Maven构建Java项目

    示例示例Java项目构建工具是一种用于管理和构建Java应用程序的工具。它可以帮助开发人员更轻松、更快速地构建和部署Java应用程序。常用的Java项目构建工具有Apache Maven、Gradle和Ant。…

    2023-02-20 07:26:32
    0 78 42
  • W uta:无法在mavenWeb项目中使用Commons配置读取config.properties

    关于W uta的问题,在commons uta中经常遇到,我正在尝试使用 Commons-configuration api 读取放置在我的 maven Web 项目的 src / main / resources 文件夹中的 config.properties 文件。我可以使用它没有任何问题的正常 maven 项目,但在 Web 项目中这不知何故不工作。这是我的 pom.xml…

    2022-12-18 01:45:49
    0 25 71
  • vb编程软件:为“Hello World”的窗口Sub HelloWorld() Dim myForm As New Fo

    Visual Basic(简称VB)是一种用于开发Windows应用程序的面向对象编程语言。它使用拖放式图形界面,可以快速创建功能强大的应用程序。VB可以使用COM(组件对象模型)和ActiveX技术来访问外部应用程序,如数据库管理系统,Web服务器和其他系统服务。…

    2023-05-25 14:47:19
    0 96 97
  • 店长推荐 magnet :店长推荐 magnet

    Magento是一款强大的电子商务解决方案,可以帮助店长构建一个完整的企业网站。它提供了一个全面的商业工具,可以帮助店长创建、管理和推广他们的在线业务。…

    2023-06-11 10:21:01
    0 92 97
  • vba实例800pdf学习如何使用VBA来提高工作效率

    VBA(Visual Basic for Applications)是一种用于创建自动化应用程序的开发语言。它可以在Microsoft Office应用程序中使用,例如Excel、Word和Access。下面是一个VBA实例,用于将Excel文件转换为PDF格式:…

    2024-03-25 09:47:37
    0 30 40
  • javaee是什么让企业级应用开发更加简单

    Java EE(Java Platform Enterprise Edition)是一种用于开发和部署大型分布式Web应用程序的Java平台。它提供了一组标准技术和API,用于开发和部署企业级应用程序。它包括一组Java API,用于构建和部署分布式多层应用程序,以及一组工具,用于管理和监控这些应用程序。…

    2023-03-04 05:58:06
    0 76 52
  • django网站实例:使用Django构建功能强大的网站

    Django网站实例是一个简单的网站,它使用Django框架来构建,并且可以让用户在网站上进行注册、登录、浏览、搜索等操作。以下是一个Django网站实例的代码示例:…

    2024-03-16 13:15:46
    0 86 12

发表评论

登录 后才能评论

评论列表(5条)