2011-10-07 134 views
3

我有一個maven多模塊項目。Maven發佈:分支

當代碼完成開發時,我們希望在Jenkins中編寫一個分支構建作業,它將分支代碼,在樹幹中增加pom版本,並從分支中的pom版本中刪除SNAPSHOT。

因此,如果主幹爲2.2-SNAPSHOT,則在操作結束時,主幹應爲2.3-SNAPSHOT,並且新創建的分支應該具有2.2的poms。

當我使用release:branch時,樹幹正在更新,但它並沒有從分支中的poms中刪除-SNAPSHOT。

請讓我知道如果你有任何想法實現這一點。

在此先感謝。

+0

我懷疑是你最好的選擇是採取釋放插件的源代碼,寫自己的變體。我在Python中做了類似的事情,但事實證明它非常糟糕。 –

回答

1

Maven Release plugin: Create a branch

默認情況下,在新的分支POM保持相同的版本作爲本地工作副本,和當地的POM遞增到下一個版本。如果你想以更新新的分支,而不是在工作拷貝的版本,運行:

MVN版本:分支-DbranchName =我的分支-DupdateBranchVersions =真-DupdateWorkingCopyVersions =假

注意:這是有用的,如果你想從一個標籤

作爲替代創建一個分支,你可能想嘗試的Versions Maven plugin

MVN版本:版本集:提交-DnewVersion = 2.2.0

你仍然需要手工雖然創建分支...

+0

感謝您的快速響應。是否有一個屬性可以在命令中設置分支版本號和-DupdateBranchVersions = true?我曾嘗試使用-Dproject.rel.groupid:artifactid = 2.2,但似乎沒有工作。 – anvk

+0

您是否添加了--batch-mode和-Dupdate *參數?也許你應該發佈你使用的完整命令行(可能是anonimized)? – JBert

+0

這是我在Jenkins中給出的命令: - 批處理模式版本:clean release:branch -DbranchName = 2.2 -DupdateBranchVersions = true -Dproject.rel.groupid:artifactid = 2.2 -DupdateVersionsToSnapshot = false -DautoVersionSubmodules = true我也嘗試使用釋放:清潔版本:分支-DbranchName = 2.2 -DautoVersionSubmodules = true -DupdateBranchVersions = true -DreleaseVersion = 2.2 -DupdateVersionsToSnapshot = false – anvk