Maven学习之批量修改项目版本号
前言
-
适用场景
Maven工程项目中有大量子模块时,需要批量修改pom版本号,借助mvn versions命令会把父模块更新到指定版本号,然后更新子模块版本号与父模块相同,可以避免手工大量修改和遗漏的问题。
-
需求描述
Maven工程项目多模块,修改指定模块及其所有子模块版本号,从而不影响与指定模块同层级模块项目版本号。
命令参数
-
参数详解
修改版本号
-
进入主项目目录
在pom.xml文件所在目录
批量修改全部模块版本号
-
执行命令
IDEA的控制台执行
mvn versions:set -DoldVersion=* -DnewVersion=1.5.0-SNAPSHOT -DprocessAllModules=true -DallowSnapshots=true
-
报错信息
Unknown lifecycle phase ".5.0-SNAPSHOT". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are:...
-
解决方案
命令不正确,经尝试发现使用""双引号括起来参数可正常执行,不确定是否跟IDEA控制台有关。
mvn versions:set -DoldVersion=* -DnewVersion="1.5.0-SNAPSHOT" -DprocessAllModules=true -DallowSnapshots=true
批量修改指定模块及其下属模块版本号
-
执行命令
mvn versions:set -DgroupId=cn.org.nbsp -DartifactId=hello-sub -DoldVersion=* -DnewVersion=1.5.0-SNAPSHOT -DprocessAllModules=true -DallowSnapshots=true
-
报错信息
Failed to execute goal org.codehaus.mojo:versions-maven-plugin:2.2:set (default-cli) on project kmq: Execution default-cli of goal org.codehaus.mojo:versions-maven-plugin:2.2:set failed.: NullPointerException
-
解决方案
查询资料发现,跟插件版本有关,执行插件版本执行更新命令。
mvn -B build-helper:parse-version org.codehaus.mojo:versions-maven-plugin:2.4:set -DgroupId="cn.org.nbsp" -DartifactId="hello-sub" -DoldVersion=* -DnewVersion="1.5.0-SNAPSHOT" -DprocessAllModules=true -DallowSnapshots=true
回退版本号
-
执行命令
mvn versions:revert
确认版本号
-
执行命令
mvn versions:commit
参考链接
-
Versions maven plugin 修改版本
https://blog.csdn.net/GGBomb2/article/details/78316068
-
maven项目上线,一条命令轻松修改版本号
https://blog.csdn.net/qianshangding0708/article/details/106580797
-
Maven多模块及version修改
https://blog.csdn.net/onupway/article/details/86512836
-
build-helper-maven-plugin:无法执行目标 org.codehaus.mojo:versions-maven-plugin:2.2:set
https://stackoverflow.com/questions/46190590/build-helper-maven-plugin-failed-to-execute-goal-org-codehaus-mojoversions-mav