Maven多模块及version修改的实现方法

发布时间:2020-10-18 17:56:12 作者:曹金桂
来源:脚本之家 阅读:1759

对于使用maven构建的java项目,通常聚合多个子模块项目。在版本迭代的过程中经常变更版本号,更新parent版本号,发现子模块版本号没有更新,需要一个个的手动去更新,太麻烦,且容易出错。

在版本更新之后,内部模块之间的依赖也需要变更,往往存在遗漏。

MAVEN多个子模块项目

Maven多模块及version修改的实现方法

以上是一个基本的

主项目parent包

maven-multily-module/pom.xml

项目子模块pom.xml

app-api/pom.xml;app-dao/pom.xml;util/pom.xml;trade-core/pom.xlm;user-core/pom.xml

子模块packaging为pom

app-core/pom.xml

以上定义规则保证了项目内部模块之间的依赖版本统一,第三方依赖包版本不冲突

MAVEN聚合多个子模块项目版本号修改

虽然按照以上的规则定义模块及依赖,但是在版本迭代过程中需要修改对应的版本号,还是需要顶级pom的版本号,及每个子模块内部parent的版本号。

 <parent>
  <groupId>com.maven.multily.module</groupId>
  <artifactId>parent</artifactId>
  <!--版本升级需要修改每个子模块 parent.version的值-->
  <version>1.1.0-SNAPSHOT</version>
 </parent>

这种手工修改方式极容易遗漏,导致项目内部模块版本依赖存在问题。

我们可以通过maven的插件方式来升级整个项目的版本号。方案如下:

在项目顶层pom中添加version插件

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>versions-maven-plugin</artifactId>
  <version>2.3</version>
  <configuration>
   <generateBackupPoms>false</generateBackupPoms>
  </configuration>
 </plugin>

在项目根目录下执行以下命令修改版本号

// 设置新的版本号未1.2.0-SNAPSHOT
mvn versions:set -DnewVersion=1.2.0-SNAPSHOT

以上命令会将maven-multily-module/pom.xml版本修改为1.2.0-SNAPSHOT,且会修改所有子模块内 parent的version为1.2.0-SNAPSHOT。所以建议子模块不设置version,自动从parent继承version即可

相关参数说明

参数 默认值 说明
allowSnapshots false 是否更新-snapshot快照版
artifactId ${project.artifactId} 指定artifactId
generateBackupPoms true 是否备份pom文件
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 命令介绍
项目demo代码maven-multily-mudule

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

推荐阅读:
  1. springboot整合ssm创建Maven多模块项目
  2. 使用Maven多模块怎么创建父子关系

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

maven 多模块 version

上一篇:Vue底层实现原理总结

下一篇:微软产品生命周期查询地址

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》