java 单机接口限流处理方案
574
2022-11-08
maven如何动态统一修改版本号的方法步骤
前言
最近业务开发部门因为开发环境和测试环境共用一个maven私仓,导致他们开发环境的API包和测试环境的API包发生了覆盖现象。于是他们向我们部门提出一个需求,希望我们能帮他们实现或者提供这么一个方案,就是项目自动化构建时,项目的版本号能跟着环境变更。比如是开发环境,则项目的API包版本就形如1.0-dev,如果是测试环境,则项目的API版本就形如1.0-test
示例演示
项目层级如下
方案一:mvn -Denv.project.version=1.0-env
注:env.project.version为自定参数变量,env为dev或者test
1、在maven项目的父级pom设置变量,形如下
2、修改其子模块pom
3、执行如下命令
mvn clean package -Denv.project.version=1.0-dev -DskipTests
如果要打包发布到私有仓库,则执行
mvn clean deploy-Denv.project.version=1.0-dev -DskipTests
4、验证
从截图,可以看出达到预期的效果
方案二 maven的profile+自定参数变量
1、在maven项目的父级pom设置变量,并添加profile,形如下
2、修改其子模块pom
3、执行如下命令
mvn clean package -Ptest -DskipTests
如果要打包发布到私有仓库,则执行
mvn clean deploy -Ptest -DskipTests
注:不指定-P默认为dev
4、验证
从截图,可以看出达到预期的效果
方案三(推荐) mvn versions:set -DnewVersion=1.0-dev
注:使用该命令,项目无需做任何变动。
直接执行命令
mvn versions:set -DnewVersion=1.0-dev
如果要发布到私仓,此时要分两次命令执行,命令如下
mvn versions:set -DnewVersion=1.0-dev
mvn clean deploy -DskipTests
此时查看idea,会发现
项目版本号已经发生改变,且产生一个pom.xml.versionsBackup文件,这个文件是用来回退版本用的,其内容如下
如果确认没问题,则可以执行你本来要操作的步骤,比如打包或者发布,形如下命令
mvn clean package/deploy -DskipTests
从截图,可以看出达到预期的效果
如果有问题想回退版本,则执行
mvn versions:revert
进行回退。不过能成功执行该步骤的前提是没有执行
mvn versions:commit
且存在pom.xml.versionsBackup文件文件
如果不想产生pom.xml.versionsBackup文件,则可以在父pom配置如下插件
指定generateBackupPoms为false
参数介绍
其具体更多详细介绍可以查看官网
http://mojohaus.org/versions-maven-plugin/index.html
总结
从本示例的业务场景来看,通过自定义变量虽然也可以达到效果,但是如果子模块一多的话,可能容易发生漏改现象。因此个人推荐使用mvn versions:set -DnewVersion=1.0-dev这种形式来进行修改
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~