versions-maven-plugin 使用

  • 在多模块maven聚合工程中进行版本升级时还在手动挨个修改版本号?
  • 当我们的项目中依赖了多个公司内部工程jar包时,若想要升级jar包还在手动修改?
  • 有没有更加优雅的方式来管理我们的maven项目版本号?

来尝试一下versions-maven-plugin插件来优雅的修改pom版本号吧

一. 修改本工程的版本号

  1. 更新本工程的版本号:
相关命令:
mvn versions:set

用法:
mvn versions:set -DnewVersion=xxx -DprocessAllModules -DgenerateBackupPoms=true

-DprocessAllModules参数代表要同时修改所有模块的版本号

generateBackupPoms=true表示生成备份pom,如果不需要可以设置false,默认为true
  1. 提交
相关命令:
mvn versions:commit

用法:
mvn versions:commit

可以mvn versions:commit来提交修改,删除pom.xml.versionsBackup文件。
  1. 回滚(版本号修改错误时可以回滚):
相关命令:
mvn versions:revert

用法:
mvn versions:revert

versions的任何修改,最终都会先记录一个pom.xml.versionsBackup文件暂存改动,

可以使用 mvn versions:revert 来回滚,这样就会恢复成pom.xml.versionsBackup文件的样子同时删除pom.xml.versionsBackup。

二. 修改依赖包版本号

  • 修改properties中的定义的版本号
  1. 修改pom中定义的property
相关命令:
mvn versions:set-property

用法:
mvn versions:set-property -Dproperty=trade-facade.version -DnewVersion=1.0.2-SNAPSHOT

说明:

例如pom中原来是:
<properties>
    <trade-facade.version>1.0.1</trade-facade.version>
</properties>

执行如下命令:
mvn versions:set-property -Dproperty=trade-facade.version -DnewVersion=1.0.2-SNAPSHOT

执行后效果:
<properties>
    <trade-facade.version>1.0.2-SNAPSHOT</trade-facade.version>
</properties>
  • 修改dependencyManagement和dependencies中的定义的版本号
  1. 使用最新的snapshots版本
mvn versions:use-latest-snapshots -Dincludes=com.zhaoyou

可以升级对应依赖包为最新的snapshots版本 (注意当前包若为snapshots版本时无效)

-Dincludes参数的格式为-Dincludes=groupId1:artifactId1,groupId2:artifactId2
artifactId可以为空
  1. 使用最新的releases版本
mvn versions:use-latest-versions  -Dincludes=com.zhaoyou,com.xyz

可以把当前版本升级为高版本的releases版本
(当前版本可以是snapshots版本也可以是releases版本,会忽略高本版的SNAPSHOT)

-Dincludes参数的格式为-Dincludes=groupId1:artifactId1,groupId2:artifactId2
artifactId可以为空
  1. 使用最新的releases版本(注意和6的区别)
mvn versions:use-latest-releases -Dincludes=com.zhaoyou

当前版本必须是releases版本才起作用

-Dincludes参数的格式为-Dincludes=groupId1:artifactId1,groupId2:artifactId2
artifactId可以为空
  1. 使用使用和当前snapshots版本对应的releases版本
mvn versions:use-releases -Dincludes=com.zhaoyou

例如: 
1.0.1-SNAPSHOT ---> 1.0.1   (前提1.0.1在仓库中存在,否则无效)

-Dincludes参数的格式为-Dincludes=groupId1:artifactId1,groupId2:artifactId2
artifactId可以为空
  1. 使用下一个版本号
把上面命令中的-latest改成-next就可以了
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐