Jenkins Maven Release Plugin

3
在 Jenkins(最新版本)和 Maven 3.0.x 中,我有一个项目(Java源代码)。
我正在使用 M2 发布插件,在 Jenkins 作业的仪表板左侧窗格上提供了一个很好的“执行 Maven 发布”按钮。在 Jenkins 作业配置中,它会调用:release:prepare release:perform 目标。
当我点击“执行 Maven 发布”时,它会成功完成其工作(从 1.0.0-SNAPSHOT 构建,运行测试,并且如果成功,则将 pom.xml 更改为版本号为 1.0.0,执行某些验证并更改 pom.xml(检查 maven-release-plugin 等),将此更改提交到版本控制中,用 1.0.0 标记它作为版本控制中的“TAG”,再次更改 pom.xml 以使用 1.0.1-SNAPSHOT 并提交它,然后从刚创建的 1.0.0 发布版本标记处签出,将其签出到 /target/checkout 文件夹下,构建发布的 1.0.0 版本的产品(jar/war/pom 等),最后将其部署到你在 ..... ... 部分中提到的存储库中。
  <distributionManagement>
   <repository>
     <id>dev-artifactory</id>
         <url>http://1.2.3.15:8081/artifactory/libs-release-local/</url>
   </repository>
   <snapshotRepository>
     <id>dev-artifactory</id>
         <url>http://1.2.3.15:8081/artifactory/libs-snapshot-local/</url>
   </snapshotRepository>
  </distributionManagement>

我需要的是:

1)如何使“执行Maven发布”过程在生成x.x.x版本构件后调用服务器部署并运行一些集成测试。这应该发生在maven-release-plugin进程执行将构件部署到二进制存储库(Artifactory/Nexus)之前。也就是说,如果您要将构件放入发布存储库中,则非单元测试也必须成功(不是将构件放入Artifactory的libs-release-local存储库中,而是尚未启动集成测试)。

或者,我需要更改...以使用libs-snapshot-local(Artifactory存储库),然后运行IT测试,最后如果这些测试成功,将1.0.0版本构件从libs-stage-local存储库移动到libs-release-local存储库。

我知道我可以在Maven用户的.m2/settings.xml(用户全局)或M2_HOME/.m2/settings.xml(全局)中设置与maven-release-plugin相关的设置,但此时这不是问题。


你们有IT吗?它们是如何集成到你们的构建中的?通过配置文件?通过Maven-failsafe-plugin还是其他方式? - khmarbaise
我们有一个IT测试,在持续集成环境中,我们在VM上部署/启动tomcat后运行它(我们即时创建VM,将应用程序构件部署到其中,运行测试,然后销毁VM)。如果所有测试都通过,则应该将构件放入“libs-release-local”而不是首先进入此存储库,然后运行测试。 - AKS
2个回答

1
我们为每个环境(dev、qa、prod)都有一个Jenkins部署。我们使用Promoted Builds、Copy Artifact和Parameterized Trigger插件在所有环境中移动相同的构建工件。要了解它们如何一起工作,请阅读此帖子(如何从Jenkins的另一个作业中推广特定构建编号?
根据发布流程,不使用Maven Release插件,而是使用Maven Promote插件(http://java.jiderhamn.se/2016/05/04/announcing-maven-promote-plugin/)来发布已经构建和测试过的工件(有很多关于maven release插件缺点的文章)。您仍然可以使用Jenkins M2 Release Plugin,但在其配置中,发布目标和选项中,请调用mvn release:clean promote:prepare release:prepare。更多详情请参见:https://github.com/mjiderhamn/promote-maven-plugin/issues/2

1

1
第一个链接已经失效,这是它的存档版本:http://web.archive.org/web/20160405090645/http://labs.bsb.com/2014/02/better-maven-releases-with-jenkins/ - Panda TG Attwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接