新功能开发时,我们需要修改项目中的 pom.xml 的版本号。但如果这个 maven 项目有很多子模块,那么一个一个去修改,既麻烦又容易漏改。这里介绍两种方法。
一、第一种:使用 maven 提供的命令
### 1、设置新的版本号
mvn versions:set -DnewVersion=1.1.3
### 2、如果当前设置的版本号不正确,可以回退
mvn versions:revert
### 3、确认后提交版本
mvn versions:commit
二、第二种: 使用 maven 插件
1、在顶级pom中添加以下配置
<properties>
...
<revision>0.0.1-SNAPSHOT</revision> <!--用于控制项目版本-->
<maven-flatten-plugin.version>1.2.5</maven-flatten-plugin.version>
</properties>
<build>
<plugins>
<!-- 用于简化版本控制 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>${maven-flatten-plugin.version}</version>
<configuration>
<updatePomFile>true</updatePomFile>
<flattenMode>resolveCiFriendliesOnly</flattenMode>
</configuration>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
</execution>
<execution>
<id>flatten.clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2、替换所有pom中的版本为 ${revision} ,包括顶级pom
3、使用 maven 打包时会自动替换所有的版本,并且会在目录下生成 .flattened-pom.xml
因为这个不需要提交,所以我们在 .gitignore 文件中将这个排除即可
4、以后每次修改版本时,只需要修改顶级 pom 文件里面的一个版本就可以了
<revision>0.0.1-SNAPSHOT</revision> <!--用于控制项目版本-->
比较
两种方法各有优劣,但是个人更加推崇第二种方法,不过第二种方法需要在项目中额外引入插件,且需要在 .gitignore 中添加过滤文件