一行命令同时修改maven项目中多个mudule的版本号
这是Hollis的第 215 篇原创分享
作者 l Hollis
来源 l Hollis(ID:hollischuang)
Maven,是一个Java开发比较常用的项目管理工具,可以对 Java 项目进行构建、依赖管理。
对于很多Java程序员来说,分层架构都是不陌生的,至少MVC三层架构都是不陌生的,甚至有人说:"Any problem in computer science can be solved by anther layer of indirection."
想要在代码中进行分层,比较好的做法就是创建多module的项目
maven-parent (Maven Project)|- maven-dao (Maven Module)|- pom.xml|- maven-service (Maven Module)|- pom.xml|- maven-view (Maven Module)|- pom.xml|- pom.xml
以上项目,主要有三个模块,一般通过Maven进行模块间关系的管理。如:
最外层的pom.xml中,定义以下内容:
<modelVersion>4.0.0</modelVersion><artifactId>hollis-test</artifactId>
<groupId>com.hollis.lab</groupId>
<name>test</name>
<packaging>pom</packaging>
<version>1.0.0</version>
<modules><module>maven-dao</module><module>maven-service</module><module>maven-view</module>
</modules>
然后在每个子模块中定义以下内容:
<modelVersion>4.0.0</modelVersion>
<parent><artifactId>hollis-test</artifactId><groupId>com.hollis.lab</groupId><version>1.0.0</version>
</parent><artifactId>maven-service</artifactId>
<name>com.hollis.lab</name>
<packaging>jar</packaging>
这样,就形成了一个父子模块的关系。
但是,这样的项目,在版本升级的时候就会比较麻烦,因为要遍历的修改所有pom中的版本号。比如要把1.0.0升级到1.0.1,那么就需要把所有的pom中的version都改掉。
这个人肉修改的过程既繁琐又容易出错,那么有没有什么办法可以代替人肉修改呢?
答案是有的。
一行命令修改所有版本号
maven之所以强大,是因为他有一个牛X的插件机制。我们可以借助一个插件来实现这个功能。
这个插件就是versions-maven-plugin。使用方法也很简单,就是在最外层的pom文件中,增加以下插件配置:
</plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>versions-maven-plugin</artifactId><version>2.7</version><configuration><generateBackupPoms>false</generateBackupPoms></configuration></plugin>
</plugins>
generateBackupPoms用于配置是否生成备份Pom,用于版本回滚。
配置好插件后,执行命令
mvn versions:set -DnewVersion=1.0.1
即可降以上例子中的所有版本号修改成1.0.1。
为了方便使用,还可以在linux上设置别名,如:
alias mvs='mvs() { mvn versions:set -DnewVersion=$1 }; mvs'
即可使用mvs
命令一键修改版本号。
好啦,这个小的奇技淫巧你掌握了吗?
一行命令同时修改maven项目中多个mudule的版本号相关推荐
- 解决maven项目中-Dmaven.multiModuleProjectDirectory报错问题
maven项目中,在run as 执行maven命令的时候,报错: -Dmaven.multiModuleProjectDirectory system property is not set. C ...
- 在maven项目中使用Junit进行单元测试
在maven项目中使用Junit进行单元测试(一) 在maven项目中使用Junit进行单元测试一 创建maven项目 编写测试用代码 小结 这是第一篇博文,所以我决定先从比较简单的内容写起,同时熟悉 ...
- Maven项目中使用本地JAR包
在Maven项目中使用本地JAR包有两种方法: 1. 使用system scope <dependencies><dependency><groupId>org.r ...
- 如何查看Maven项目中的jar包依赖树情况?
对于开发人员,我想大家对于Maven应该不会陌生吧,如何在一个Maven项目中对这个项目中所引用的第三方jar包有个直观的了解呢? 其实实现很简单,只需要借助于Maven的一条命令,如下所示: mvn ...
- 在Maven项目中添加Maven仓库和私服不存在的jar包
有些jar包(因为不开源/公司内部私有等原因)在Maven仓库.私服中不存在.在Maven项目中添加Maven仓库和私服不存在的jar包呢? 场景: maven项目有时会遇到用非maven仓库或公司内 ...
- 解决 maven 项目中加入了 lombok 库后依然报错的问题
解决 maven 项目中加入了 lombok 库后依然报错的问题 参考文章: (1)解决 maven 项目中加入了 lombok 库后依然报错的问题 (2)https://www.cnblogs.co ...
- executequery方法_在IDEA的maven项目中连接使用MySQL8.0方法教程
首先看一下我的基本的开发环境: 操作系统:MacOS 10.13.5编辑器:IDEA 2018.3其他:MySQL8.0.15.Maven 3.3.9.JDK 1.8 好,下面就正式开始: 第一步:在 ...
- 怎么改vue项目的标题_如何动态修改Vue项目中的页面title
前言:在项目中,我们有时候需要修改Vue项目中的页面title. 方法有两种,①如果需要动态设置页面的title,可以直接使用document.title:②可以使用router的beforeEach ...
- 【报错笔记】在maven项目中jsp页面使用window.location.href给controller传参时参数过长所以路径无法跳转至controller
在maven项目中jsp页面使用window.location.href给controller传参时参数过长所以路径无法跳转至controller 解决方案:使用a链接来用
最新文章
- java冒泡排序_Java中的经典算法之冒泡排序(Bubble Sort)
- 函数嵌套 lisp表达式求值
- com+ 三层布署[未成功验证]
- 计算机科学与技术的深度研究,专业深度分析--计算机科学与技术.docx
- 工业级光电转换器产品介绍
- IT职场人生系列之十三:技术?管理?业务?
- 基于python的性能负载测试Locust-6-脚本编写之使用HTTP client
- No module named ‘pyqt5‘解决办法
- Arturia Pigments Mac:模拟振荡器和波表振荡器的结合
- COOKIE和SESSION之间的区别以及用法
- SLAM--线性化求解估计位姿
- 计算机屏保代码,AD 脚本kixtart运用之五(用户电脑屏保设置)(示例代码)
- win10安装免安装版的mysql5.7
- Linux修改文件保存时报错E45: 已设定选项 ‘readonly‘ (请加 ! 强制执行)
- 星星之火OIer:TunaParetoUnija
- matlab霍夫曼吗仿真,霍夫曼编译码的Matlab代码实现
- vue项目打包后index.html文件打开空白
- 海洋cms(海洋视频内容管理系统) v12.5 bulid220618
- 漫威系列-《复联4》
- 解决 git 文件夹不显示绿色图标和红色图标的问题