2012-06-13 36 views
4

這裏是我的開發配置:

在顛覆,

- 我有我的project_X /主幹(與我公司最新開發),
- 我有我的project_X /標籤(有不同版本),
- 我正在考慮添加分支文件夾。

我正在使用Jenkins使用Ant腳本構建我的project_X/trunk。 我的Ant腳本執行許多操作,它檢出,編譯,創建帶有圖形的文檔,運行單元測試,執行pmd,創建jar和壓縮所有內容。如何在使用Ant/Jenkins時檢出同一個Java項目的不同Subversion標籤/分支?

我希望能夠用我的Ant腳本的標籤或分支機構(以及行李箱)爲同一個項目。

什麼是最簡單的方法:

我認爲這只是一個檢查Subversion版本庫正確路徑的問題,對嗎?

- 如果我是正確的,我應該制定Subversion動態路徑。
- 在我的Ant腳本中,我的Subversion路徑是一個變量嗎?
- 我如何從詹金斯的界面傳遞路徑值?
- 是否有插件讓我將Jenkins的Subversion路徑值傳遞給Ant腳本?
- 或者我應該在詹金斯創建一個新工作(使用相同的腳本,但路徑不同)?

希望

預先感謝您的幫助,
最好的問候,

回答

5

你應該標籤/分支名稱參數您的構建。最簡單的方法是將一個參數(例如,SVN_BRANCH_DIR)添加到您的Jenkins作業中,該作業將具有諸如trunkbranches/branch1,tags/sometag之類的值。

現在,如果您使用Jenkins ANT構建步驟,該參數將作爲屬性自動傳遞給您的ANT腳本(通過ANT -D選項)。因此您可以在其中使用${SVN_BRANCH_DIR}(例如svn://myserver/myrepo/${SVN_BRANCH_DIR})。

+0

嗨malenkiy_scot,謝謝你的回答。 – Alain

+0

所以基本上我需要用新的Subversion url svn:// myserver/myrepo/$ {SVN_BRANCH_DIR}來修改我的ant腳本。在詹金斯,我有一個注入環境變量到構建過程部分。我可以在這裏聲明我的新$ {SVN_BRANCH_DIR}參數,並且現在給它賦值「trunk」所以無論何時我需要改變路徑,我可以找到我的參數並更改它的值?感謝您的幫助, – Alain

+0

我的意思是將其定義爲*構建參數*:轉到作業定義頁面 - >選中「此構建已參數化」 - >按「添加參數」。現在,我會選擇「選擇」參數(帶有一個選項 - * trunk *)。注入env變量也可以,但是它有以下缺點:(1)定義困難(2)不太明顯(3)它不會自動傳遞給ANT構建步驟(您需要做一些事情像'SVN_BRANCH_DIR = $ {SVN_BRANCH_DIR}'在構建步驟的屬性部分。 –

3

Jenkins Subversion Plugin自版本1.24(2011年3月22日)開始提供「List subversion tags(and more)」項目參數。

從字面上看,

使用時,使用戶能夠選擇從創建該項目的工作副本一個Subversion標籤該參數將顯示在生成時的字段。 一旦設置了兩個字段Name和Repository URL,您必須(1)確保作業使用Subversion,並(2)通過連接此參數的兩個字段來設置Subversion的Repository URL字段。例如,如果名稱設置爲SVN_TAG,並且存儲庫URL設置爲https://svn.jenkins-ci.org/tags,則Subversion的存儲庫URL必須設置爲https://svn.jenkins-ci.org/tags/ $ SVN_TAG。 請注意,您可以將存儲庫URL字段設置爲Subversion存儲庫根目錄,而不是僅指向標籤目錄(即,您可以將其設置爲https://svn.jenkins-ci.org而不是https://svn.jenkins-ci.org/tags)。在這種情況下,如果此存儲庫根目錄包含主幹,分支和標籤文件夾,則該下拉列表將允許用戶選擇主幹,分支或標籤。

對於無人蔘與的集成構建,您可以使用默認的「trunk」參數值。

我希望這會有所幫助。

相關問題