随着微服务的盛行,Java项目基本上都是以多模块形式存在,项目在迭代升级过程中经常会更新版本号,但每个模块要逐个手动更新,这种工作很烦,且很容易遗漏,导致打包失败,即使成功也可能因为引用老版本的子模块导致线上问题,本人整理了三种方法,希望可以帮到大家[呲牙]
通过property设置(不推荐)
如下pom.xml
4.0.0companybuild.parent${my.version}pom1.1.2-SNAPSHOT
且子模块的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:甥敳獲xxxyyyzzzpom.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在新版本不建议使用这种方式,本人在工作过程中发现配合其他插件使用时会报错[撇嘴]
使用maven插件(推荐)
官网:http://www.mojohaus.org/versions-maven-plugin/
命令如下:
#设置新版本号为2.0-RELEASEmvn versions:set -DnewVersion=2.0-RELEASE#Option1:确认提交mvn versions:commit#Option2:回滚mvn versions:revert
设置并确认提交后,父模块与子模块版本号均更新为最新版本
此插件好处是轻量级,跟版本控制系统无关,但命令有些长,且至少需要执行两次命令,本人经常会忘记命令而去查备忘录[捂脸]
使用IDEA插件(IDEA环境下推荐)
此插件是本人开发维护,一键升级[呲牙]
IDEA插件市场搜索“Maven Project Version”

Maven Project Version 插件
点击maven的工具窗口上的 Set the project version 设置按钮出现如下弹窗

版本设置弹窗
选择主项目和版本号,提交即可
当然大家如果对这个小插件有什么疑问和建议也可以留言给我