美文网首页
maven—多模块项目 利用Maven插件修改工程版本号

maven—多模块项目 利用Maven插件修改工程版本号

作者: 小胖学编程 | 来源:发表于2020-10-18 15:36 被阅读0次

一个父模块下有几个子模块,父模块包含所有子模块的公共依赖。但是父模块的version从1.0.0-SNAPSHOT更新到1.0.1-SNAPSHOT。每一个子模块都需要更新。

可以有下列命令,来完成多模块项目版本号的更新:

1. 版本的统一升级

统一升级:即父pom和子pom的版本通过插件自动的升级

1. 方法一:mvn versions命令

1.1 先更新parent工程的版本号

可以设置整个项目的版本号,在你需要设置新版本号,可以全局更新项目版本号。一般开发环境就设置成SNAPHSHOT版本,测试测完之后没问题设置成Release版。

mvn versions:set -DnewVersion=1.0.1-SNAPSHOT //更新整个项目版本

注:若是如果子模块与父模块本来就不一样了, 先运行mvn -N versions:update-child-modules再更新父工程版本

1.2 把子模块的版本更新成parent工程的版本号

mvn -N versions:update-child-modules  //更新所有的子模块继承的父模块版本号

执行后maven将会生成pom.xml的一个备份:pom.xml.versionsBackup

1.3 提交

mvn versions:commit

确认升级版本无问题后,执行mvn versions:commit 确认升级,去掉备份的pom.xml.versionsBackup

1.4 回滚方案

若是上面操作出现问题,可以考虑设置回滚mvn versions:revert在重新设置。

1.2 方法二:mvn release命令

父pom安装插件:

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.5.3</version>
                    <configuration>
                        <!--官方文档 https://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html-->
                        <!-- 是否允许带时间戳的 SNAPSHOT 依赖项。 默认false-->
                        <allowTimestampedSnapshots>true</allowTimestampedSnapshots>
                        <!--是否为子版本分配父亲版本号,默认false-->
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <!--release:perform中参数 https://maven.apache.org/maven-release/maven-release-plugin/perform-mojo.html-->
                        <!--在执行mvn release:perform时默认会生成api文档,如果默写注释不符合规范的话会造成构建失败,可以加参数-DuseReleaseProfile=false取消构建api文档,或则需要根据规范书写注释。-->
                        <useReleaseProfile>false</useReleaseProfile>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

指定升级的版本:

mvn release:update-versions -D-DautoVersionSubmodules=false -DdevelopmentVersion=1.0.4-SNAPSHOT

其版本号只能以-SNAPSHOT结尾,命令执行之后,所有的版本号都变成了1.0.4-SNAPSHOT,不过有人hack了代码,在release:update-versions中增加了一个releaseVersion参数,可以设定正式版的版本号,项目地址为:https://github.com/ge0ffrey/maven-release,可以下载下来进行编译使用。

2. 发布

deploy snapshot版本到私服
发布所有模块, 在父工程下执行

mvn clean deploy -Dmaven.test.skip=true

发布单独子模块,及其依赖的子模块

mvn clean package deploy -pl xxx-xxx-? -am -Dmaven.test.skip=true -f pom.xml

在idea中,也可以使用


deploy操作.png

推荐阅读

[Maven] 使用Maven管理多模块项目

使用Maven插件修改工程版本号

相关文章

网友评论

      本文标题:maven—多模块项目 利用Maven插件修改工程版本号

      本文链接:https://www.haomeiwen.com/subject/dorcmktx.html