这是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的版本号相关推荐

  1. 解决maven项目中-Dmaven.multiModuleProjectDirectory报错问题

    maven项目中,在run as  执行maven命令的时候,报错: -Dmaven.multiModuleProjectDirectory system property is not set. C ...

  2. 在maven项目中使用Junit进行单元测试

    在maven项目中使用Junit进行单元测试(一) 在maven项目中使用Junit进行单元测试一 创建maven项目 编写测试用代码 小结 这是第一篇博文,所以我决定先从比较简单的内容写起,同时熟悉 ...

  3. Maven项目中使用本地JAR包

    在Maven项目中使用本地JAR包有两种方法: 1. 使用system scope <dependencies><dependency><groupId>org.r ...

  4. 如何查看Maven项目中的jar包依赖树情况?

    对于开发人员,我想大家对于Maven应该不会陌生吧,如何在一个Maven项目中对这个项目中所引用的第三方jar包有个直观的了解呢? 其实实现很简单,只需要借助于Maven的一条命令,如下所示: mvn ...

  5. 在Maven项目中添加Maven仓库和私服不存在的jar包

    有些jar包(因为不开源/公司内部私有等原因)在Maven仓库.私服中不存在.在Maven项目中添加Maven仓库和私服不存在的jar包呢? 场景: maven项目有时会遇到用非maven仓库或公司内 ...

  6. 解决 maven 项目中加入了 lombok 库后依然报错的问题

    解决 maven 项目中加入了 lombok 库后依然报错的问题 参考文章: (1)解决 maven 项目中加入了 lombok 库后依然报错的问题 (2)https://www.cnblogs.co ...

  7. executequery方法_在IDEA的maven项目中连接使用MySQL8.0方法教程

    首先看一下我的基本的开发环境: 操作系统:MacOS 10.13.5编辑器:IDEA 2018.3其他:MySQL8.0.15.Maven 3.3.9.JDK 1.8 好,下面就正式开始: 第一步:在 ...

  8. 怎么改vue项目的标题_如何动态修改Vue项目中的页面title

    前言:在项目中,我们有时候需要修改Vue项目中的页面title. 方法有两种,①如果需要动态设置页面的title,可以直接使用document.title:②可以使用router的beforeEach ...

  9. 【报错笔记】在maven项目中jsp页面使用window.location.href给controller传参时参数过长所以路径无法跳转至controller

    在maven项目中jsp页面使用window.location.href给controller传参时参数过长所以路径无法跳转至controller 解决方案:使用a链接来用

最新文章

  1. java冒泡排序_Java中的经典算法之冒泡排序(Bubble Sort)
  2. 函数嵌套 lisp表达式求值
  3. com+ 三层布署[未成功验证]
  4. 计算机科学与技术的深度研究,专业深度分析--计算机科学与技术.docx
  5. 工业级光电转换器产品介绍
  6. IT职场人生系列之十三:技术?管理?业务?
  7. 基于python的性能负载测试Locust-6-脚本编写之使用HTTP client
  8. No module named ‘pyqt5‘解决办法
  9. Arturia Pigments Mac:模拟振荡器和波表振荡器的结合
  10. COOKIE和SESSION之间的区别以及用法
  11. SLAM--线性化求解估计位姿
  12. 计算机屏保代码,AD 脚本kixtart运用之五(用户电脑屏保设置)(示例代码)
  13. win10安装免安装版的mysql5.7
  14. Linux修改文件保存时报错E45: 已设定选项 ‘readonly‘ (请加 ! 强制执行)
  15. 星星之火OIer:TunaParetoUnija
  16. matlab霍夫曼吗仿真,霍夫曼编译码的Matlab代码实现
  17. vue项目打包后index.html文件打开空白
  18. 海洋cms(海洋视频内容管理系统) v12.5 bulid220618
  19. 漫威系列-《复联4》
  20. 解决 git 文件夹不显示绿色图标和红色图标的问题

热门文章

  1. 校招面试必读 Tips
  2. 易天光通信ETU 25G SFP28光模块规格参数
  3. elasticsearch的增删改查
  4. C# 运算符及条件控制语句
  5. 《Python Cookbook(第3版)中文版》——1.9 在两个字典中寻找相同点
  6. 部署awstats分析系统
  7. uglifyjs压缩JS
  8. Java对MySQL数据库进行连接、查询和修改【转载】
  9. 你会么?图形不正,角度是随机的
  10. 【智能驾驶】车道线检测中的新IPM(逆透视变换)算法实验效果