更新多模块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>
标签。 它会从父文件中获取版本。