一行命令同时修改maven项目中多个module的版本号的方法

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命令一键修改版本号。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解IDEA多module项目maven依赖的一些说明

    不管eclipse有没有被被时代抛弃,反正是被我抛弃了,因为IDEA是真的好用 现在公司的项目基本都是基于maven的多module项目,controller,service,model,dao等都被分成了不同的module,这样做当然也是为了解耦. 这些module可根据需要在pom.xml配置来打成war包或者jar包 <packaging>jar</packaging> web主项目设置packaging级别为war,dao.model这些module设置packaging级

  • Maven多模块工程Module开发(图文教程)

    使用IDEA创建多模块开发 功能模块来分module 跟java的package类似,一般是按照的功能模块分module,比如:sso/cas/portal/activity/system,具体可根据需要 例如,在电商系统中如下module --module-test-common公共部分 --module-test-picture图片 --module-test-order订单 --module-test-checkout购物车 --module-test-pay支付 --module-tes

  • IntelliJ IDEA打开多个Maven的module且相互调用代码的方法

    ###1.需求 1.IntelliJ IDEA打开多个项目 2.每个同学开发一个项目,相互之前独立不影响 3.通过一个入口可以调用所有项目类.方法.属性,达到同时开发且检测代码 4.dependency只需要写一份,其余项目不用写,便可全部依赖 ###2.注意事项(非常重要) 6个坑: 1.<groupId>com.yh.bi</groupId> 项目中所有的groupId要一样 2.避免循环依赖,导致程序报错 3.<scope>provided</scope&g

  • 如何使用eclipse搭建maven多module项目(构建父子项目)

    创建空maven项目 1.File–>new–>project- 2.next 3.next 4.finish 5.配置pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/

  • idea中创建多module的maven工程的方法

    以前自学Java web的时候,我们都是创建一个web工程,该工程下面再创建dao.service.controller等包.自从工作以后,我们会发现现在的web项目包含多个module,controller和service都是分开在不同的module.个人认为,这样做的好处在于解耦,同时服务的重用.我们可以吧service的module打成jar包,提供给其他项目使用. 对于刚刚接触多module的maven项目的菜鸟来讲,很难转变以前的思想,也难以创建这种工程.本文就是教会大家使用idea来

  • 一行命令同时修改maven项目中多个module的版本号的方法

    Maven,是一个Java开发比较常用的项目管理工具,可以对 Java 项目进行构建.依赖管理. 对于很多Java程序员来说,分层架构都是不陌生的,至少MVC三层架构都是不陌生的,甚至有人说:"Any problem in computer science can be solved by anther layer of indirection." 想要在代码中进行分层,比较好的做法就是创建多module的项目 maven-parent (Maven Project) |- maven

  • 在IDEA的maven项目中连接并使用MySQL8.0的方法教程

    首先看一下我的基本的开发环境: 操作系统:MacOS 10.13.5编辑器:IDEA 2018.3其他:MySQL8.0.15.Maven 3.3.9.JDK 1.8 好,下面就正式开始: 第一步:在IDEA中新建一个maven项目 1.使用骨架创建maven项目,此处选择:maven-archetype-quickstart 2.填入GroupId和ArtifactId 3.第一个选中maven安装的文件夹,第二个选中maven安装文件夹中的conf/settings.xml,第三个如果set

  • 修改maven项目端口号的方法

    同时启动多个maven项目,需要修改其端口号.一行命令就可以搞定! tomcat7:run -Dmaven.tomcat.port=8080 以上这篇修改maven项目端口号的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: 修改maven本地仓库路径的方法 Java修改maven的默认jdk版本为1.7的方法

  • 浅谈Maven 项目中依赖的搜索顺序

    网上有很多关于maven项目中mirror.profile.repository的搜索顺序的文章,说法不一.官方文档并没有找到相关的说明,鉴于此,我抽时间做了一个验证. 依赖仓库的配置方式 maven项目使用的仓库一共有如下几种方式: 中央仓库,这是默认的仓库 镜像仓库,通过 sttings.xml 中的 settings.mirrors.mirror 配置 全局profile仓库,通过 settings.xml 中的 settings.repositories.repository 配置 项目

  • 如何在Maven项目中运行JUnit5测试用例实现

    本文演示了如何如何编写JUnit 5测试用例,在Maven项目中运行JUnit 5测试用例. 编写JUnit 5测试用例 如果你是Java开发者,那么对于JUnit应该就不陌生.JUnit是Java单元测试的基础工具. JUnit目前最新的版本是JUnit 5.x,但广大的Java开发者估计还停留在JUnit 4.x,因此有必要演示下如何编写JUnit 5测试用例. 引入JUnit 5依赖 相比较JUnit 4而言,JUnit 5一个比较大的改变是JUnit 5拥有与JUnit 4不同的全新的A

  • Intellij IDEA中如何查看maven项目中所有jar包的依赖关系图

    Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven Projects 表示根据 pom.xml 重新载入项目.一般单我们在 pom.xml 添加了依赖包或是插件的时候,发现标注 4 的依赖区中没有看到最新写的依赖的话,可以尝试点击此按钮进行项目的重新载入. 第六个按钮:Execute Maven Goal 弹出可执行的 Maven 命令的输入框.有些情况下我们需要通过书写某些执行命令来构建项目,就可以通

  • IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法

    出处:https://www.cnblogs.com/SunSpring eclipse下面创建的Maven项目,使用mybatis.eclipse里面能正常启动,在idea中一直卡在maybatis 加载位置. 1.首先是不报错也没反应.这个时候需要我们重写SqlSessionFactoryBean 让错误显示出来. public class BeanFactory extends SqlSessionFactoryBean { @Override protected SqlSessionFa

  • idea2019导入maven项目中的某些问题及解决方法

    idea2019导入maven项目中的某些问题 idea2019导入maven项目,会出现很多莫名其妙的问题,需要注意的是如果是idea2019的版本是3月以前的,那会maven需要下载3.6.1以前版本,3.6.2版本不兼容 需要3.6.1版本的童鞋可在官网下载,或者用下面链接获取: 链接: https://pan.baidu.com/s/1nkJNF1OUuzHxgsBHXa5gow 提取码: snk3 配置maven的setting.xml文件 如果导入依赖出现问题时,可从以下几方面查看:

  • 解决IDEA的maven项目中没有新建Servlet文件的选项问题

    问题:右键package新建却没有servlet的选项 原因:项目设置里面没有勾选Source Roots 解决办法: Step1. Step2 到此这篇关于IDEA的maven项目中没有新建Servlet文件的选项问题及解决方法的文章就介绍到这了,更多相关IDEA maven项目没有新建Servlet文件的选项内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • Maven项目中resources配置总结

    背景 通常Maven项目的文件目录结构如下: # Maven项目的标准目录结构 src main java #源文件 resources #资源文件 filters #资源过滤文件 config #配置文件 scripts #脚本文件 webapp #web应用文件 test java #测试源文件 resources #测试资源文件 filters #测试资源过滤文件 it #集成测试 assembly #assembly descriptors site #Site target gener

随机推荐