Versions maven plugin 修改版本
文章目录
- 版本控制
- 修改全模块版本号
- 修改模块版本
- 修改指定模块版本号
- 参数介绍
代码经过长期修改后,版本号却从没有推进,导致个别release稳定版的模块更新代码之后,其他开发机器并不会自动更新本地依赖包。并使主干针对某分支的修改也同步到其他分支。
所以,此文档描述如何使用versions maven plugin插件,批量修改项目各模块的版本号,灵活推进或回退版本,避免主干每次更新代码,立即对所有分支产生影响。
版本控制
修改全模块版本号
修改版本的时候,必须规范模块中pom.xml文件的编写,显式声明其父子节点信息(|),需要修改全部模块的版本号为1.0.1-SNAPSHOT,可以在最顶层的根目录。运行命令:
mvn versions:set -DoldVersion=* -DnewVersion=1.0.1-SNAPSHOT -DprocessAllModules=true -DallowSnapshots=true
修改后输入:
mvn clean install -DskipTests
Maven开始编译打包。
成功后,输入:
mvn dependency:tree -Dverboss -Dincludes=${project.groupId}:${project.artifactId}
检查工程的依赖树是否全部依赖了1.0.1-SNAPSHOT的base模块。
如果全部模块版本号都改为了:1.0.1-SNAPSHAOT,即修改成功。
若修改失败,可是使用命令回退版本号:
mvn versions:revert
若确认版本,可使用命令:
mvn versions:commit
修改版本所产生的backup文件会自动删除。
修改模块版本
若开需要推进某模块版本号,或有问题需要回退某模块的版本,或者区域分支想更新某模块为新版本,例如修改base模块的版本号为1.0.1-SNAPSHOT,运行命令:
mvn versions:set -DnewVersion=1.0.1-SNAPSHOT -DprocessAllModules=true -DallowSnapshots=true
即可修改该模块及依赖该模块的版本号为1.0.1-SNAPSHOT,其中参数-DallowSnapshots=true,表示允许release版修改为snapshot版。
加上参数-DprocessAllModules=true表示该模块下的子模块及依赖其的版本号都改成1.0.1-SNAPSHOT。
修改指定模块版本号
如果想修改指定模块的版本号即整个模块中依赖其的版本号,比如groupId:groupId:{artifact}的版本号修改为1.0.2-SNAPSHOT,可以运行命令:
mvn versions:set -DgroupId=${groupId} -DartifactId=${artifact} -DoldVersion=* -DnewVersion=1.0.2-SNAPSHOT -DallowSnapshots=true
其中,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
参数介绍
参数 | 默认值 | 说明 |
---|---|---|
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 | 是否更新在子模块中显式指定的匹配版本(如/项目/版本)。 |
默认情况仅更新groupId,version匹配的,不匹配的不会改变。
更多参考:
http://www.mojohaus.org/versions-maven-plugin/index.html
版权声明:本文为CSDN博主「GGBomb2」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ggbomb2/article/details/78316068
Versions maven plugin 修改版本相关推荐
- wro4j和maven plugin在编译期间压缩静态资源
优化前: 基本上所有的jsp都引用了这一大坨静态文件: <link rel="stylesheet" type="text/css" href=&quo ...
- wro4j和maven plugin在编译期间压缩静态资源.
优化前: 基本上所有的jsp都引用了这一大坨静态文件: <link rel="stylesheet" type="text/css" href=" ...
- eclipse maven plugin 插件 安装 和 配置
本文转自:http://www.blogjava.net/fancydeepin/archive/2012/07/13/eclipse_maven3_plugin.html maven3 安装: 安装 ...
- Maven多模块版本统一管理
Maven多模块版本统一管理 问题 在开发一些工具类的时候分了很多模块,类似下图: 每次改动版本号都要手动去更改每一个子模块的版本号,非常的不方便,所以: 解决 Maven官方文档说:自 Maven ...
- org.apache.maven.plugin.MojoExecutionException: protoc failure
build hadoop 23 真的是千辛万苦,错误贴出来 [ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugin ...
- maven pom java版本_Maven更新POM中的JDK版本(比如更新为JDK1.8)
默认POM如果不指定JDK版本为1.5,而有些项目需要使用泛型这些,就必须使用1.8版本的JDK,所以需要手动修改POM. 打开pom.xml文件修改,增加如下配置节点: [...] [...] or ...
- scm maven_在运行时访问工件的Maven和SCM版本
scm maven 您可以轻松地告诉Maven在JAR清单文件中包含工件的版本及其Git / SVN /-修订版,然后在运行时通过getClass().getPackage访问该信息. getImpl ...
- 在运行时访问工件的Maven和SCM版本
您可以轻松地告诉Maven在JAR清单文件中包含工件的版本及其Git / SVN /-修订版,然后在运行时通过getClass().getPackage访问该信息. getImplementation ...
- Spring Boot的Maven插件Spring Boot Maven plugin详解
pring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Maven ...
最新文章
- Android AM命令行启动程序的方法
- forget password of WEBLOGIC user
- ASP.NET MVC:会导致锁定的会话
- LeetCode 860. 柠檬水找零(贪心)
- 什么样的项目是成功的?
- 坊间八卦 | 关于 Oracle 中国区裁员的是是非非
- 英特尔再曝安全漏洞:黑客可窃取个人电脑中机密数据
- POJ 3107 - Godfather
- weblogic安装升级配置
- ofo之死:一场商业“宫斗剧”下的祭品
- 数据结构殷人昆电子版百度云资源_数据结构精讲与习题详解
- 一维均值滤波算法matlab,用MATLAB编程实现均值滤波算法?
- 机器学习原理与实践(开源图书)-总目录
- 计算机cpu在哪,cpu什么意思啊_电脑cpu哪里看
- .NET 开发从入门到精通
- phabricator 结合 arcanist 使用
- linux之lsv—NAT配置
- 19款外贸ERP软件大盘点
- 从Trimble服务器下载历书
- 【机器学习】K-Means 聚类是特殊的矩阵分解问题
热门文章
- 网上商城—管理员删除商品
- 002-请你回答一下单元测试、集成测试、系统测试、验收测试、回归测试这几步中最重要的是哪一步...
- Android Jetpack组件之数据库Room详解(三)
- Win10安装华三模拟器各种疑难问题
- 使用python读取mysql数据库并进行数据的操作
- Windows删除文件时显示找不到该项目 1
- 好班微校云信聊天解读记录
- 树莓派进阶之路 (014) - 树莓派远程连接的三种方式总结
- Bootstrap3插件系列:bootstrap-select2
- windows和centos进行文件上传和下载