[英]Jenkins maven-release-plugin
在Jenkins(最新),Maven 3.0.x中,我有一個項目(Java源代碼)。
我正在使用M2發布插件,它在Jenkins作業(Jenkins作業的儀表板上的左側窗格)上提供了一個很好的“Perform Maven Release”按鈕。 在場景背后/ Jenkins作業的配置中,它調用: release:prepare release:執行目標。
當我點擊“執行Maven發布”時,它成功完成了工作(從1.0.0-SNAPSHOT構建,如果成功則運行測試&&,對pom.xml進行更改並將版本作為1.0.0作為版本ID,執行更多驗證並對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)如果上面的過程生成xxx發布工件並運行一些集成測試,我怎樣才能使“執行Maven發布”過程調用部署到服務器。 這應該在將工件部署到二進制存儲庫(Artifactory / Nexus)之前由maven-release-plugin進程執行。 即如果您將工件放在發布存儲庫中,那么非單元測試也是成功的(並非工件在libs-release-local存儲庫中的Artifactory和Integration測試尚未啟動。
或者我需要更改...以使用libs-snapshot-local(Artifactory存儲庫)然后運行IT測試,最后如果這些測試成功,將1.0.0版本工件從libs-stage-local存儲庫移動到libs-release - 本地存儲庫。
我知道我可以在maven的用戶的.m2 / settings.xml(用戶全局)或M2_HOME / .m2 / settings.xml(全局)中放置與maven-release-plugin相關的設置,但此時,這不是問題。
也許你應該考慮看一下這篇文章: https : //pragmaticintegrator.wordpress.com/2014/05/12/running-the-maven-release-plugin-with-jenkins/
使用Jenkins Release插件,您可以自定義發布工作流程,以便在M2發布完成后添加特定步驟。
我們為每個環境(dev,qa,prod)部署了Jenkins。 我們使用Promoted Builds,Copy Artifact和Parameterized Trigger插件在所有環境中移動相同的工件。 要了解它們如何協同工作,請閱讀這篇文章( 如何從Jenkins的另一個工作中提升特定的構建號? )
根據發布過程,使用Maven Promote插件( http://java.jiderhamn.se/2016/05/04/announcing-maven-promote-plugin/ )來釋放已構建的工件,而不是Maven Release插件。並測試了(有很多關於maven release插件的缺點的文章)。 您仍然可以使用Jenkins M2 Release Plugin,但在其配置,發布目標和選項中,請調用mvn release:clean promote:prepare release:prepare
。 有關詳細信息,請訪問: https : //github.com/mjiderhamn/promote-maven-plugin/issues/2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.