maven动态统一管理版本号

2,299 阅读2分钟

记录码农的点滴。

序言

maven多模块项目,在项目需要发布新版本的时候,需要做版本更新管理。通常一个项目包含若干个子模块,若手动一个一个修改累死了。在这里记录一下使用maven统一管理版本号的方式。

项目结构

项目结构.png

方式1:使用Maven Project Version

注:Maven Project Version插件 IDEA插件可以很好的帮助我们修改版本号。

插件.png 安装完成后在Maven的界面会出现一个向上的箭头图标

图标.png

点击上图中的图标,在弹出的框里填写想要生成的版本号

使用.png

然后点击Submit,就会发现所有module的pom文件对应的版本号都修改完成了!!!

方式2:借助pom文件${xxx.version}进行占位

在项目的父级pom.xml中设置项目的版本号。

1.在maven项目的父级pom.xml中使用${budaogu.version}来统一管理版本号。这样每次需要修改版本号的时候,修改定义的budaogu.version变量即可。

<groupId>com.budaogu</groupId>
<artifactId>budaogu-pro</artifactId>
<packaging>pom</packaging>
<version>${budaogu.version}</version>
<modules>
    <module>budaogu-commom</module>
    <module>budaogu-jpa</module>
    <module>budaogu-demo</module>
    <module>budaogu-redis</module>
    <module>budaogu-test</module>
    <module>budaogu-auth</module>
</modules>

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <budaogu.version>1.0</budaogu.version>
    <encoding>UTF-8</encoding>

    <lombok.version>1.18.16</lombok.version>
    <hutool.version>5.8.10</hutool.version>
</properties>

2.修改子模块pom.xml

<parent>
    <artifactId>budaogu-pro</artifactId>
    <groupId>com.budaogu</groupId>
    <version>${budaogu.version}</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>budaogu-auth</artifactId>

3.如果出现idea子模块使用父模块变量飘红:Prperties in parent definition are prohibited

飘红.png 出现这个提示其实并不影响项目编译、打包。个人有强迫症,看不得代码中有红色的东东。

解决: 在idea,打开setting,在其中搜索prohibited,找到Maven--Usage of properties in parent description,去掉选中框中的√,就可以了。

取消.png

方式3:使用versions-maven-plugin插件管理

这种方式需要在父级pom.xml中做如下配置。

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

可以在插件中执行versions:set命令,会自动执行,最后在控制台上让你输入新的版本号,此处我的新版本号是1.0.1,执行完成后会将所有项目的版本后修改为在控制台输入的版本号。

使用插件.png

使用这个插件时也可以使用命令

mvn versions:set -DnewVersion=1.0.1

由于我使用命令执行没有成功,就不做介绍了,jym欢迎指正使用命令的方式进行修改版本号操作,会进行修改。