Maven多模块版本更新

随着微服务的盛行,Java项目基本上都是以多模块形式存在,项目再迭代升级过程中经常会更新版本号,但每个模块要逐个手动更新,这种工作很烦,且很容易遗漏,导致打包失败,即使成功也可能因为引用老版本的子模块导致线上问题,本人整理了三种方法,希望可以帮到大家

1、通过property设置(不推荐)

如下pom.xml

<modelVersion>4.0.0</modelVersion>
<groupId>company</groupId>
<artifactId>build.parent</artifactId>
<version>${my.version}</version>
<packaging>pom</packaging>
 
<properties>
  <my.version>1.1.2-SNAPSHOT</my.version>
</properties>

且子模块的version也是使用的表达式${my.version}
maven2 升级到 maven3后
build的过程中会报如下警告

[WARNING]
[WARNING] Some problems were encountered while building the effective model for xxx.yyy.zzz:ZZZ.0.1.0-SNAPSHOT
[WARNING] 'version' contains an expression but should be a constant. @ xxx.yyy.zzz:ZZZ:${my.version}, C:\Users\xxx\yyy\zzz\pom.xml, line 8, column 14
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]

可见maven在新版本不建议使用这种方式,本人在工作过程中发现配合其他插件使用时会报错

2、使用maven插件(非IDEA环境下推荐)

官网:http://www.mojohaus.org/versions-maven-plugin/
命令如下:

#设置新版本号为2.0-RELEASE
mvn versions:set -DnewVersion=2.0-RELEASE
#Option1:确认提交
mvn versions:commit
#Option2:回滚
mvn versions:revert

设置并确认提交后,父模块与子模块版本号均更新为最新版本
此插件好处是轻量级,跟版本控制系统无关,但命令有些长,且至少需要执行两次命令,本人经常会忘记命令而去查备忘录

3、使用IDEA插件(IDEA开发环境下强烈推荐)

此插件是本人开发维护,一键升级
IDEA插件市场搜索“Maven Project Version”

Maven Project Version 插件

点击maven的工具窗口上的Set the project version设置按钮出现如下弹窗
版本设置弹窗

选择主项目和版本号,提交即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容