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插件批量修改版本号相关推荐

  1. Versions maven plugin 修改版本

    文章目录 版本控制 修改全模块版本号 修改模块版本 修改指定模块版本号 参数介绍 代码经过长期修改后,版本号却从没有推进,导致个别release稳定版的模块更新代码之后,其他开发机器并不会自动更新本地 ...

  2. maven批量修改版本号

    maven批量修改版本号 新版本开发时,我们需要修改一下项目中pom.xml的版本号.但是如果这个maven项目有很多的子模块项目,那么一个个手动的去改就显得费时费力又繁琐.还好,maven为我们提供 ...

  3. eclipse maven plugin 插件 安装 和 配置

    本文转自:http://www.blogjava.net/fancydeepin/archive/2012/07/13/eclipse_maven3_plugin.html maven3 安装: 安装 ...

  4. maven 版本号插件_测试Maven版本插件自动递增版本号

    maven 版本号插件 抽象 Maven版本插件是一个非常强大的工具,我在很大程度上依赖于它来协调软件版本. 通常,软件发行版本号遵循简单的1.0.0.0-SNAPSHOT格式. 但是最近我需要在版本 ...

  5. 测试Maven版本插件自动递增版本号

    抽象 Maven版本插件是一个非常强大的工具,我在很大程度上依赖于它来协调软件版本. 通常,软件发行版本号遵循简单的1.0.0.0-SNAPSHOT格式. 但是最近我需要在版本号中添加限定符-类似于1 ...

  6. java plugin 安装_eclipse maven plugin 插件 安装 和 配置

    Posted on 2012-07-13 12:40 fancydeepin 阅读(96246) 评论(45)  编辑  收藏  所属分类: Maven3 Guide 环境准备: eclipse(He ...

  7. eclipse maven plugin 插件安装和配置

    2019独角兽企业重金招聘Python工程师标准>>> 环境准备: eclipse(Helios) 3.6 maven 3.0.4 maven3 安装: 安装 Maven 之前要求先 ...

  8. maven jetty 插件 允许修改 js

    <!--允许修改js,css--><servlet><servlet-name>default</servlet-name><init-param ...

  9. 多模块Maven项目统一修改版本号

    在编写多Module的Maven项目时,如果Module很多,并且存在复杂层级,那么修改项目版本号将会是一个大工程,我们需要去每个Module中修改当前Module的版本号,以及它依赖的parent的 ...

最新文章

  1. python ssl模块用法详解_一看就懂,Python 日志模块详解及应用!
  2. CentOS6.0_X86_64 oracle 11g R2 开机自动启动(linux)
  3. android 4.0之前版本号出现JSONException异常
  4. javafx之TableView的FXCSS
  5. tuning-primer.sh 性能调试工具的使用
  6. 控制使用期限_学校厨房设备延长其使用寿命的方法有哪些呢?
  7. Struts2 Action的访问路径
  8. android jni socket
  9. [js高手之路] dom常用节点属性兼容性详解与应用
  10. 分形理论在金相学中的应用
  11. 334个地级市名单_中国各级行政区划数量,统计到乡镇一级
  12. 人工智能培训的过去与现在
  13. 开心网辅助程序--开心网争车位助手正式发布(含源码)
  14. vue中Echart如何打包下载图片
  15. 关于手机常见音频POP音产生的原因以及解决思路(一)——耳机插入与拔出
  16. 现场dolphinscheduler每次都在晚上停止任务15分钟,是什么导致了这个情况?
  17. 怎样才能设计一个“易用性”好的网站?
  18. 基于AI的自然语言处理
  19. IELTS学习(001) - 语法构成原理
  20. 八、 以太坊的杰出之作:智能合约

热门文章

  1. GitHub趋势:Vue.js大有超过TensorFlow之势!
  2. web端log4net输出错误日志到mysql
  3. 寒江的网站基本优化观点
  4. 回调机制在 Android 监听用户界面操作中的体现
  5. jQuery——入门(三)JQuery DOM操作(核心处理和文档处理)
  6. Python爬虫_Cookie
  7. 利用奇异值产生脆弱水印应用于检测、定位、恢复文章总结
  8. Dart 6-Day
  9. 均值滤波器类型_详解图像滤波原理及实现!
  10. 定位html中的背景图,关于背景图的定位和透明度问题(HTML+CSS笔记)