maven-release-plugin 使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

关于插件目标,主要是prepare和perform两个目标



prepare:概括来说,就是perform之前需要执行的准备操作,主要是代码版本修改和提交。

具体来说呢?主要有以下几个:

1)检测是否有未提交的代码。

2)检测是否有snapshot依赖。

3)修改工程的版本号为release版本(提示输入)。

4)为当前代码打上一个git的tag(提示输入),提交代码至远程仓库。

5)修改pom为下一个snapshot版本(输入提示),提交至远程仓库。


参考 https://www.cnblogs.com/huxiuqian/p/10281007.html

mvn release:prepare

执行过程中,你会遇到这样的提示:

What is the release version for “Slave Monitor for system load average”? (org.jenkins-ci.plugins:systemloadaverage-monitor) 1.3:
    ——“你想将 发布为什么版本?默认是 1.3 。” 我要的就是1.3,直接回车。

What is SCM release tag or label for “Slave Monitor for system load average”? (org.jenkins-ci.plugins:systemloadaverage-monitor) systemloadaverage-monitor-1.3:
    ——“发布的tag标签名称是什么?默认为 systemloadaverage-monitor-1.3 ”我还是要默认值,直接回车。

What is the new development version for “Slave Monitor for system load average”? (org.jenkins-ci.plugins:systemloadaverage-monitor) 1.4-SNAPSHOT:
    ——“主干上新的版本是什么?默认为 1.4-SNAPSHOT 。”哈,release插件会自动帮我更新版本到1.1-SNAPSHOT,很好,直接回车。

然后屏幕刷阿刷,maven在build我们的项目,并进行了一些git操作,你可以仔细查看下日志。

那么结果是什么呢?你可以浏览下代码仓库:

我们多了一个tag: 这就是需要发布的版本 systemloadaverage-monitor-1.3。
再看看项目中中的POM,其版本自动升级成了 1.4-SNAPSHOT 。
这不正是我们想要的么?等等,好像缺了点什么,对了,1.3 还没有发布到maven仓库中呢。

1
2
3
4
5
6
7
8
export JAVA_HOME=~/work/install/jdk8
export PATH=$JAVA_HOME/bin:~/work/install/apache-maven-3.8.2/bin:$PATH
mvn -Dmaven.test.skip=true -DskipTests=true -Dhost=0.0.0.0 "$@"


../mvn.sh -Darguments='-DskipTests=true -Dspotbugs.skip=true' release:perform


mvn release:perform

maven-release-plugin会自动帮我们签出刚才打的tag,然后打包,分发到远程Maven仓库中,至此,整个版本的升级,打标签,发布等工作全部完成。我们可以在远程Maven仓库中看到正式发布的 1.3 版本。

这可是自动化的 ,正式的 版本发布!