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

我有一个多模块的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> 

主父模块具有以下configuration

 <modelVersion>4.0.0</modelVersion> <groupId>com.xyz</groupId> <artifactId>xyz-application</artifactId> <version>2.50.0.g</version> <packaging>pom</packaging> 

使用versions:set从版本 – maven插件设置 :

 mvn versions:set -DnewVersion=2.50.1-SNAPSHOT 

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

如果你犯了一个错误,那么

 mvn versions:revert 

之后,或者

 mvn versions:commit 

如果你对结果感到满意。

你可能想看看Maven发布插件的版本:更新版本的目标。 它将更新父级版本以及其下的所有模块。


更新:请注意,以上是发布插件。 如果你没有发布,你可能想使用versions:set

 mvn versions:set -DnewVersion=1.2.3-SNAPSHOT 

我鼓励你阅读关于多模块 (反应堆)构build的Maven书籍 。

我的意思是特别如下:

 <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> <parent> <artifactId>xyz-application</artifactId> <groupId>com.xyz</groupId> <version>2.50.0.g</version> </parent> <groupId>com.xyz</groupId> <artifactId>xyz-Library</artifactId> 

这是一个更好的链接 。

版本:更新子模块听起来像你在找什么。 你可以做的版本:设置如上所述,但这是一个轻量级的方式来更新父版本号。 对于子模块,我认为应该删除<version>定义,因为它们将inheritance父模块的版本号。

最好的方法是,因为你打算把你的模块捆绑在一起,你可以在最外层的pom.xml (父模块)中指定<dependencyMangement>标签。 它控制版本和组名。 在你的个人模块中,你只需要在你的pom.xml指定<artifactId>标签。 它会从父文件中获取版本。