4

我想找到使用Maven 2,Bamboo 3.1和JIRA 4.3來管理髮布的最佳方式。我已經嘗試了很多東西,但由於錯誤或功能缺失,我一直在不斷嘗試。發佈管理 - Maven,Bamboo和JIRA

我的最終目標是讓JIRA擁有多個版本,讓Bamboo使用這些版本並使用Maven構建它們的構件,然後將這些構件部署到存儲庫(本例中爲Nexus)。

以下是我已經試過的方法:

1)使用一個佔位符中的所有勁歌項目版本:

父POM

兒童POM

<project ...> 
    <parent> 
    <groupId>group</groupId> 
    <artifactId>parent</artifactId> 
    <version>${ci.version}</version> 
    </parent> 
    <artifactId>child</artifactId> 
    ... 
</project> 

如果您從項目根目錄pom開始構建並指定-Dci.version=<my-version>在命令行上。將此與Bamboo Release Management Plugin相結合,我可以根據需要構建和部署我的模塊版本。

這種方法的問題是,當部署或安裝時,Maven不會替換poms中的佔位符變量,這意味着存儲庫中的poms具有${ci.version}標記,當我真的希望它們具有具體版本時。由於佔位符,這意味着沒有人可以使用我部署的模塊。見MNG-2971。 2)在POM中使用混凝土SNAPSHOT版本,並使用Bamboo Release Management Plugin配置竹籤執行Maven Release Plugin

不幸的是,Maven Release Plugin需要增加的版本,竹插件允許您獲取當前版本的名稱,但不是下一個版本。如果沒有這些信息,使用Maven Release Plugin會將版本增加到不受JIRA管理的內容。爲了使這個選項可以工作,我需要下一個版本,或者在Bamboo Release Management Plugin完成它的工作之後能夠運行一個計劃(這個第二次修復也會增加提交日誌的額外混亂,就像你會爲自動增量獲得一個提交,併爲適當的增量提供一個提交)。

2.b)與2)相同,但您必須在通過計劃配置界面進行任何發佈之前指定Bamboo中的下一個版本,並將該值手動設置爲計劃應處理的下一個JIRA版本。這解決了2)的問題,但增加了額外的手動步驟。

3)手動做事,可能使用Maven Release Plugin。完全忽略Bamboo中的所有發行版功能,並通過調用Maven Release Plugin目標在需要時更改版本來手動管理在命令行上發佈的版本。當發生這種情況時,JIRA版本也需要手動發佈。我們還需要配置一個竹版本來運行並測試發行插件爲非SNAPSHOT版本創建的標籤。

這個選項有很多過程涉及到的東西肯定會出錯。

我不能是唯一一個試圖使用這些技術獲得自動發佈的人,任何人都可以提供幫助。

感謝

回答

0

無光,

您的目標指定-Dci.version = {} bamboo.custom.brmp.name我 偶然發現了你的問題時,我一直在尋找確切相同信息,但後來JIRA 4.4和3.3竹,其中發佈管理插件已經被替換/與JIRA竹插件升級...

希望這有助於

弗朗西斯

+0

感謝您的回覆。事實證明,這種方法不適用於項目之外的可重用組件,因爲在部署正確版本的製造品時,pom最終會以佔位符而不是具體版本。因此父項引用有 $ {ci.version}使poms在父項目之外不可用。最後,我去了一個固定快照版本和明確從竹工作中調用的maven版本插件的組合,以便將版本更改爲所需的版本。 – Matt