Versions maven plugin 修改版本

Versions maven plugin 修改版本

代码经过长期修改后,版本号却从没有推进,导致个别release稳定版的模块更新代码之后,其他开发机器并不会自动更新本地依赖包。并使主干针对某分支的修改也同步到其他分支。
所以,此文档描述如何使用versions maven plugin插件,批量修改项目各模块的版本号,灵活推进或回退版本,避免主干每次更新代码,立即对所有分支产生影响。

  • maven环境搭建

  • 版本控制

  • 参数介绍

  • Versions maven plugin


maven环境搭建

安装maven

安装maven超,总共分四步:

1.下载 Maven ,其实就是一个压缩包,解压一下

这里写图片描述

2.配置环境变量

有两个环境变量可以配置:

MAVEN_HOME = D:\maven\apache-maven-3.2.3(maven目录)
MAVEN_OPTS = -Xms128m -Xmx512m(可选)
  • 1
  • 2

3.在path变量末尾加入“%MAVEN_HOME%\bin;”。

以上MAVEN_HOME 是必须要配置的,如果想让 Maven 跑得更快点,可以根据自己的情况来设置 MAVEN_OPTS。
这里写图片描述

4.最后,验证是否安装成功

打开 cmd,输入:

mvn -v
  • 1

我想您一定会看到一些信息,如下图所示:
这里写图片描述

Maven 安装成功!


版本控制

修改全模块版本号

修改版本的时候,必须规范模块中pom.xml文件的编写,显式声明其父子节点信息(<parent></parent>|<modules></modules>),需要修改全部模块的版本号为1.0.1-SNAPSHOT,可以在最顶层的根目录,如产品主干在src下,cmd进入根目录,运行命令:

mvn versions:set -DoldVersion=* -DnewVersion=1.0.1-SNAPSHOT -DprocessAllModules=true -DallowSnapshots=true
  • 1

这里写图片描述

修改后输入:

mvn clean install -DskipTests
  • 1

Maven开始编译打包,请耐心等待,编译完成后,查看结果是否编译成功:

这里写图片描述

成功后,输入:

mvn dependency:tree -Dverboss -Dincludes=${project.groupId}:${project.artifactId}
  • 1

检查工程的依赖树是否全部依赖了1.0.1-SNAPSHOT的base模块:

这里写图片描述

如果全部模块版本号都改为了:1.0.1-SNAPSHAOT,即修改成功。
若修改失败,可是使用命令回退版本号:

mvn versions:revert
  • 1

若确认版本,可使用命令:

mvn versions:commit
  • 1

修改版本所产生的backup文件会自动删除。

修改模块版本

若开需要推进某模块版本号,或有问题需要回退某模块的版本,或者区域分支想更新某模块为新版本,例如修改base模块的版本号为1.0.1-SNAPSHOT,cmd命令行进入模块目录。

运行命令:

mvn versions:set -DnewVersion=1.0.1-SNAPSHOT -DprocessAllModules=true -DallowSnapshots=true
  • 1

即可修改该模块及依赖该模块的版本号为1.0.1-SNAPSHOT,其中参数-DallowSnapshots=true,表示允许release版修改为snapshot版。
加上参数-DprocessAllModules=true表示该模块下的子模块及依赖其的版本号都改成1.0.1-SNAPSHOT。

3.3.修改指定模块版本号

如果想修改指定模块的版本号即整个模块中依赖其的版本号,比如groupId:

{artifact}的版本号修改为1.0.2-SNAPSHOT,可以运行命令:

mvn versions:set -DgroupId=${groupId} -DartifactId=${artifact} -DoldVersion=* -DnewVersion=1.0.2-SNAPSHOT -DallowSnapshots=true
  • 1

其中,artifactId、groupId和version在maven中形成三维坐标以指定模块,而在这里指定-DgroupId=${groupId} -DartifactId=${artifact}
确定制定修改的模块为${groupId}:${artifact}

这里写图片描述

如果不希望修改依赖mongodb的模块也修改mongodb的版本号,可以使用参数-DprocessDependencies=false取消依赖其的修改,从而只修改xxx工程的版本号:

mvn versions:set -DgroupId=${groupId} -DartifactId=xxx -DoldVersion=* -DnewVersion=1.0.2-SNAPSHOT -DallowSnapshots=true -DprocessDependencies=false
  • 1

参数介绍

|参数 |默认值 |说明 |
|allowSnapshots |false |是否更新-snapshot快照版|
|artifactId |${project.artifactId} |指定artifactId |
|generateBackupPoms |true |是否备份pom文件 |
|groupId |${project.groupId} |指定groupId |
|newVersion | |设置的新版本号 |
|nextSnapshot |false |更新版本号为下一个快照版本号|
|oldVersion |${project.version} |指定需要更新的版本号可以使用缺省‘*’|
|processAllModules |false |是否更新目录下所有模块无论是否声明父子节点|
|processDependencies |true |是否更新依赖其的版本号|
|processParent |true |是否更新父节点的版本号|
|processPlugins |true |是否更新插件中的版本号|
|processProject |true |是否更新模块自身的版本号|
|removeSnapshot |false |移除snapshot快照版本,使之为release稳定版|
|updateMatchingVersions |true |是否更新在子模块中显式指定的匹配版本(如/项目/版本)。|

Versions maven plugin插件

对于versions maven plugin插件的其他用法可以参考:

http://www.mojohaus.org/versions-maven-plugin/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值