versions-maven-plugin插件批量修改版本号
1.简介
versions-maven-plugin插件可以管理项目版本,
特别是当Maven工程项目中有大量子模块时,
可以批量修改pom版本号,
插件会把父模块更新到指定版本号,
然后更新子模块版本号与父模块相同,
可以避免手工大量修改和遗漏的问题。
2.使用
2.1.修改版本号
cmd进入Maven工程根目录,运行命令:
mvn -f "pom.xml" versions:set -DoldVersion=* -DnewVersion=1.2.0-SNAPSHOT -DprocessAllModules=true -DallowSnapshots=true -DgenerateBackupPoms=true
修改成功后,全部模块版本号都变成了1.2.0-SNAPSHAOT。
简化版命令:
mvn versions:set -DnewVersion=1.2.0-SNAPSHOT
该命令和上一条命令等价,
个人推荐显示的设置参数,
方便后面修改参数。
2.2.回退版本号
mvn versions:revert
注意设置generateBackupPoms为true(默认值),
才会有pom.xml.versionsBackup备份文件,
否则没有备份文件无法回退版本号。
或者使用版本管理工具提供的撤销功能,
比如git直接回滚到原始版本:
git reset --hard origin/master
2.3.确认修改过的版本号
mvn versions:commit
查看修改后的pom文件,如果没有问题则进行确认,
该命令会删除修改版本号时生成的pom备份文件。
2.4.直接修改版本号,无需确认
设置generateBackupPoms为false,
则直接修改pom,不会生成备份文件,
也就不需要使用commit再次确认,
但是也无法使用revert命令回退版本号。
mvn versions:set -DnewVersion=1.2.0-SNAPSHOT -DgenerateBackupPoms=false
3.参数介绍
| 参数 | 默认值 | 说明 |
|---|---|---|
| allowSnapshots | false | 是否更新-snapshot快照版 |
| artifactId | ${project.artifactId} | 指定artifactId |
| generateBackupPoms | true | 是否生成备份文件用于回退版本号 |
| 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官网说明。
4.使用技巧
为了更好的使用插件修改版本号,
减少不必要的版本号修改,
推荐Maven工程遵循如下规范:
1.同一项目中所有模块版本保持一致
2.子模块统一继承父模块的版本
3.统一在顶层模块Pom的节中定义所有子模块的依赖版本号,子模块中添加依赖时不要添加版本号
4.开发测试阶段使用SNAPSHOT
5.生产发布使用RELEASE
6.新版本迭代只修改父POM中的版本和子模块依赖的父POM版本
5.参考文章
Versions maven plugin 修改版本
如何使用maven优雅地管理项目版本号
versions-maven-plugin官网
versions-maven-plugin插件批量修改版本号的更多相关文章
- Versions maven plugin 修改版本
使用versions maven plugin插件,批量修改项目各模块的版本号,灵活推进或回退版本,避免主干每次更新代码,立即对所有分支产生影响. https://blog.csdn.net/sunz ...
- Maven plugin插件---appassembler-maven-plugin快速配置
使用appassembler-maven-plugin 打包自定义目录 1.Pom中添加 <plugin> <artifactId>maven-resources-plugin ...
- Maven plugin 插件
1.maven-surefire-plugin简介: Maven在构件时执行到测试的生命周期时,会使用maven-surefire-plugin运行测试用例,背后执行的Junit或者TestNG的测试 ...
- eclipse maven plugin 插件 安装 和 配置
离线插件 点击下载离线安装包:eclipse-maven-plugin.zip ( for eclipse helios or higher ) .解压缩到任意目录(如这里的plugins目录): ...
- maven jetty 插件 允许修改 js
<!--允许修改js,css--> <servlet> <servlet-name>default</servlet-name> <init-pa ...
- Spring Boot Maven Plugin(二):run目标
简介 Spring Boot Maven Plugin插件提供spring boot在maven中的支持.允许你打包可运行的jar包或war包. 插件提供了几个maven目标和Spring Boot ...
- Spring Boot Maven Plugin(一):repackage目标
简介 Spring Boot Maven Plugin插件提供spring boot在maven中的支持.允许你打包可运行的jar包或war包. 插件提供了几个maven目标和Spring Boot ...
- jenkins插件Configuration Slicing plugin批量修改配置
作用 批量修改jenkins上job配置
- maven release plugin插件
1.打包版本区别 SNAPSHOT 快照版本(开发阶段,不稳定,容易出现bug)RELEASE 正式版本(外部依赖使用阶段,稳定,很少出现bug)Tag :标记每次代码提交的版本(比较稳定,类似分支) ...
随机推荐
- 重量级&轻量级
重量级 就是说包的大小,还有就是与个人项目的耦合程度,重量级的框架与项目耦合程度大些 代表EJB容器的服务往往是"买一送三",不要都不行 轻量级 就是相对较小的包,当然与项目的耦合 ...
- 关系型数据库和非关系型数据库区别、oracle与mysql的区别
一.关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库. 关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出的,在之后的几十年中,关系模型的概念得到了充分的发展并逐 ...
- 【Linux】【Problems】在fedora 9上解决依赖问题
summary: 在32bit的fedora9上安装EMC客户端遇到无法解决的依赖问题 detail: rpm 安装: [root@hcszmons02 tmp]# rpm -ivh lgtoclnt ...
- NoSQL之Redis学习笔记
一.NoSQL与Redis 1.什么是NoSQL? NoSQL=Not Only SQL ,泛指非关系型数据库.随着互联网的兴起,传统的关系型数据库已经暴露了很多问题,NoSQL数据库的产生就是为了解 ...
- 机器学习算法中的评价指标(准确率、召回率、F值、ROC、AUC等)
参考链接:https://www.cnblogs.com/Zhi-Z/p/8728168.html 具体更详细的可以查阅周志华的西瓜书第二章,写的非常详细~ 一.机器学习性能评估指标 1.准确率(Ac ...
- 一个超简单的Microsoft Edge Extension
这个比微软官网上的例子简单很多,适合入门.总共4个文件: https://files.cnblogs.com/files/blogs/714801/cet6wordpicker.zip 36KB 1. ...
- Nginx SERVER块配置
1 Listen 指令 Example Configuration Directives 2 server_name指令 2.1 规则 指令后可以跟多个域名,第一个是主域名 *泛域名:进支持在最前或最 ...
- JavaWeb的三大作用域
三大作用域描述 名称 类型 描述 request HttpServletRequest 将数据放在请求作用域中,在一次请求中实现数据的共享,比如请求转发 session HttpSession 将数据 ...
- 虎符2021线下赛pwn writeup
jdt 一个图书管理系统,但并不是常规的堆题.edit和show函数可以越界.edit函数和show函数相互配合泄露libc基地址,将main函数的返回地址覆盖成onegadgets拿shell. f ...
- 小迪安全 Web安全 基础入门 - 第一天 - 操作系统&名词&文件下载&反弹SHELL&防火墙绕过
一.专业名词 1.POC:(Proof of Concept),即概念验证.漏洞报告中的POC是一段说明或一个攻击的样例使读者能够确认这个漏洞是真实存在的. 2.EXP:exploit,即漏洞利用.对 ...