随着微服务的盛行,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
设置按钮出现如下弹窗版本设置弹窗
选择主项目和版本号,提交即可