在 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 等),最后将其部署到你在 ..... ... 部分中提到的存储库中。
我正在使用 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相关的设置,但此时这不是问题。