Maven 修改版本号

1,247 阅读1分钟

新功能开发时,我们需要修改项目中的 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

image.png

image.png

3、使用 maven 打包时会自动替换所有的版本,并且会在目录下生成 .flattened-pom.xml

因为这个不需要提交,所以我们在 .gitignore 文件中将这个排除即可

image.png

4、以后每次修改版本时,只需要修改顶级 pom 文件里面的一个版本就可以了

<revision>0.0.1-SNAPSHOT</revision> <!--用于控制项目版本-->

比较

两种方法各有优劣,但是个人更加推崇第二种方法,不过第二种方法需要在项目中额外引入插件,且需要在 .gitignore 中添加过滤文件