2012-08-16 31 views
4

使用ant構建下一個項目版本的過程太多了。該例程位於運行ant任務之前必須編輯的多個屬性文件中。我看看詹金斯是一個製作版本的系統(包括夜晚版本),但是我在更改屬性時遇到了問題。如何配置Jenkins以使用ant和自定義參數來構建項目

是否有可能(如果是的話,我該怎麼做)在構建之前在Jenkins配置中鍵入參數,以便它們將傳遞給ant?

我真正的意思是下面的架構(我用於手動建立):

  • 那裏是包含關於構建版本,SRC目標數據2個屬性文件,電子郵件,以通知新建和等等。

  • 相應屬性的鍵用於Ant任務,這些屬性在構建之前會被手動更改。

  • 某些屬性由Java util讀取並在構建期間用於其自己的部分。

  • 還有3或4個在build.xml中導入的ant XML,這些xmls也從所提及的文件中讀取屬性。

我想要做的是:在詹金斯

  • 變化的關鍵屬性

  • 按建設項目

  • 我的數據會覆蓋數據屬性文件或將作爲螞蟻變量值直接傳遞給螞蟻的任務。

  • ,結果我收到新建立相應的通知(他們通過螞蟻製造)

是否有機制,使一個通過詹金斯使這種模式的工作?

預先感謝您。

回答

9

在Jenkins中,您可以使用parameterised build功能指定需要替換到構建中的那些參數。

例如,如果指定一個名爲server參數,當點擊「現在建」,您進入test,生成將與您可以訪問稱爲${server}的環境變量執行。

然後,在您的「調用Ant」構建步驟中,如果您按高級......,則顯示「屬性」字段。在這裏你可以輸入my.ant.property=${server}
這相當於撥打ant -Dmy.ant.property=${server},並將擴展到ant -Dmy.ant.property=test

+0

我是否正確理解這個佯攻不會在物理上覆蓋這個值,它會在一次構建中替代它? – Dragon 2012-08-16 13:15:57

+0

@Dragon正確,因爲這是使用ant -D開關,它只有一個運行時覆蓋,屬性的物理值不會改變。 如果這個解決方案適合你,那麼你可能也想檢查一下:https://wiki.jenkins-ci.org/display/JENKINS/Extended+Choice+Parameter+plugin – 2012-08-17 02:40:54

2

另一種選擇:使用此Env plugin爲構建範圍設置環境變量。所以如果你使用的屬性是環境變量或者可以設置爲它們,那麼你想使用這個。雖然它可能涉及一些努力在改變構建腳本,但它可以是一個很好的選擇:

問:我爲什麼會用這個,因爲我已經參數化生成插件

答:由於如果有多個選項,參數化構建插件需要人機交互。例如構建版本1或版本2或測試分支。

在Env插件中,您可以爲每個選項設置一次屬性,然後爲每個選項創建相應的作業。然後安排工作,從而消除人爲因素。

相關問題