maven管理多模块的时候,会出现依赖的项目版本需要变更的问题,通过versions-maven-plugin 版本设置,可以解决的问题是,当我们变更了版本后,需要设置每个自模块parent 标签引用的版本信息。
就比如如下设置,如果我们有多个的情况,子模块都需要更改,那岂不是很费劲,而且还容易更改错。
<parent>
<groupId>com.yellowcong</groupId>
<artifactId>spring-test</artifactId>
<version>0.3.10</version>
</parent>
更新父子模块版本号
通过命令更改父节点版本,让后更新子模块版本信息
#设置父目录的版本号
mvn versions:set -DnewVersion=0.3.10
#更新子模块的版本信息
mvn versions:update-child-modules
#更新子模块,不生成备份pom文件
mvn versions:update-child-modules -DgenerateBackupPoms=false
#确认更改,删除备份
mvn versions:commit
#一次更新所有版本信息
#-DprocessAllModules=true 所有模块
#-DgenerateBackupPoms=false 不生成备份的pom文昌
mvn versions:set -DprocessAllModules=true -DgenerateBackupPoms=false -DnewVersion=0.3.10
version 插件,官网 https://www.mojohaus.org/versions-maven-plugin/index.html
父子依赖传递问题
可选依赖:放到dependencyManagement ,子类写了才会引用上,
强制依赖:可以直接放到dependencies
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring-boot.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
子类引用,就不需要写版本号了
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
插件设置版本号
给项目添加版本号设置,解决多版本修改问题
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
</plugin>
这个就相当于是图形化了操作,避免了每次贴命令的痛苦了。