本文共 4367 字,大约阅读时间需要 14 分钟。
Release插件是Apache Maven团队提供的官方插件,最终版本是2015-10-17发布的2.5.3,能够为项目代码库打tag,并将项目代码库中的代码发布到SCM的新版本。
1. 使用Release插件的前提条件
1) 明确使用的maven-release-plugin版本,当前为2.5.3
... org.apache.maven.plugins maven-release-plugin 2.5.3 ...
2) 在POM中配置scm的developerConnection
scm:git:ssh://gerrit.mycompany.com:29418/myproject
2. Release插件的Maven goals
1) release:clean
2) release:prepare
基本过程:
默认tag格式为@{project.artifactId}-@{project.version},也可以配置<tagNameFormat>以设置tag格式。
v@{project.version}
默认为clean verify,即执行mvn clean verify,也可以配置<preparationGoals>。
clean verify
执行期间,对项目代码进行单元测试(要跳过单元测试,则mvn -Darguments="-DskipTests" ...)。
git add -- mymodule\pom.xml pom.xml
git rev-parse --show-toplevel git status --porcelain . git commit --verbose -F C:\Users\...\Temp\maven-scm-1044264625.commit mymodule\pom.xml pom.xml git symbolic-ref HEAD git push ssh://gerrit.mycompany.com:29418/myproject refs/heads/master:refs/heads/mastergit tag -F C:\Users\...\Temp\maven-scm-7417013.commit myproject-1.0.1
git push ssh://gerrit.mycompany.com:29418/myproject refs/tags/myproject-1.0.1git add -- mymodule\pom.xml pom.xml
git rev-parse --show-toplevel git status --porcelain . git commit --verbose -F C:\Users\...\Temp\maven-scm-1044264625.commit mymodule\pom.xml pom.xml git symbolic-ref HEAD git push ssh://gerrit.mycompany.com:29418/myproject refs/heads/master:refs/heads/masterrelease:prepare的可配置的参数:
3) release:prepare-with-pom
功能类似于release:prepare,但需要存在一个项目的已有发布构件,从而能够生成release-pom.xml文件
4) release:perform
基本过程:
scm:git:ssh://gerrit.mycompany.com:29418/myproject myproject-1.0.1
默认为deploy site-deploy,将项目代码发布到SCM库中。
deploy
5) release:stage
6) release:rollback
7) release:branch
命令:mvn release:branch -DbranchName=my-branch
8) release:update-versions
3. Maven项目的发布过程
在POM中配置了Release插件的Maven项目,其发布过程默认即包含release:prepare和release:perform两大步。如前所述,实际上就是在执行mvn clean verify deploy site-deploy。
4. 非交互式模式的发布
从属性文件release.properties中读取发布参数,进行无人值守的自动发布。
命令:
mvn -B release:prepare release:perform 或 mvn --batch-mode release:prepare release:perform5. 正式发布前的Dry Run模式
在正式发布之前,模拟执行发布,保留发布过程中的文件,以检查输出的中间结果。
命令:mvn release:prepare -DdryRun=true此后,要正式执行发布,还需要先清除中间结果文件,然后再执行正式的发布。
命令:mvn release:clean release:prepare release:perform参考链接:
http://maven.apache.org/plugins/maven-release-plugin/
https://github.com/apache/maven-release/转载地址:http://rmlai.baihongyu.com/