2013-01-11 55 views
6

我正在考慮使用SVN,Jenkins和Maven的部署管道。目前,我被困在通常會在工作副本上撥打mvn release:perform的地方。是否可以使用帶有特定修訂版的maven-release-plugin?

在考慮部署流水線時,我想創建一個管道,其中每個提交都可以用來發佈一個測試/生產軟件。假設我有5個版本,並且我決定發佈版本3(帶有版本3)。已經有2個新的提交到中繼(現在在修訂5)。

是否可以使用maven-release-plugin在版本3檢出/構建/標記/提交版本?當maven-release-plugin完成發佈時,它通常會將修改後的POM提交到中繼

我很高興對任何類型的信息或建議在這裏,可以隨意點我的書(如http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912),博客文章,詹金斯文檔......也許我完全是在錯誤的軌道上。

回答

2

默認情況下,發佈插件會根據您的工作副本的內容創建發佈版,它只是確保您在發佈之前沒有任何未提交的內容。 AFAIK它不會強制更新源代碼,因爲這通常是持續集成系統的工作(Jenkins就是這種情況)。所以Jenkins檢出的任何東西都會被釋放。

你想要做的事聽起來更像Jenkins一方的配置變更,指向正確的修訂版本。另一方面,如果POM文件作爲發行版的一部分進行了修改,但在此期間已在SVN中進行了更改,則當Maven想要檢入修改後的POM文件時,您將遇到衝突。這種情況可能會發生,具體取決於您想要如何支持發佈版本。

基於此,在發佈之前始終創建分支可能更有意義。所以你可以創建一個基於修訂版本3的分支,然後在該分支中創建你的版本。這樣,您就不會遇到提交更新版本中已更改的資源的問題。

創建分支並檢出它可能也可以通過Jenkins和Maven實現自動化。

+0

我們如何自動化jenkins中的發佈過程。請通過http://stackoverflow.com/questions/18778986/how-to-automate-a-job-in-jenkins –

1

據我測試它,這是不可能的。

更明確地說,正如nwinler所說,當你發佈時,maven試圖提交修改後的pom。但是,如果它的版本比目前版本更舊,SVN會抱怨你的源不是最新的。 所以它不會工作。 ......據我所知。

您可以閱讀關於促銷構建的文檔。我沒有發現任何足夠清楚的內容可以指出(在寫這封郵件的幾分鐘內)。

相關問題