2013-06-20 67 views
0

是否有一種方法可以動態地在「調用Ant」構建步驟中調用Ant目標?假設你有一個build.xml:在Jenkins中動態調用Ant目標

<target name="1" description="1"> 
    <exec executable="${RES_DIR}/1.sh" failonerror="true"> 
    </exec> 
</target> 

<target name="2" description="2"> 
    <exec executable="${RES_DIR}/2.sh" failonerror="true"> 
    </exec> 
</target> 

<target name="3" description="3"> 
    <exec executable="${RES_DIR}/3.sh" failonerror="true"> 
    </exec> 
</target> 

,並希望建立詹金斯向所有使用相同的build.xml文件,而是要能夠調用某些目標爲每個製作。我不想在每次需要創建項目時對這些目標進行硬編碼,因爲我希望它自動完成。這是可能的,還是你必須事先創建一個項目並手動設置你的Ant目標?

回答

1

一個簡單的技巧可以使用targetif屬性。

例如:

<target name="run" depends="1,2,3" /> 

<target name="1" description="1" if="run1"> 
    <exec executable="${RES_DIR}/1.sh" failonerror="true"> 
    </exec> 
</target> 

<target name="2" description="2" if="run2"> 
    <exec executable="${RES_DIR}/2.sh" failonerror="true"> 
    </exec> 
</target> 

<target name="3" description="3" if="run3"> 
    <exec executable="${RES_DIR}/3.sh" failonerror="true"> 
    </exec> 
</target> 

這樣,你調用目標run和物業runX設置爲任意值(真一般是一個不錯的選擇)。只有目標X會實際運行。

+0

我將在哪裏設置屬性runx? – gjw80

+0

在詹金斯的配置 –

0

這可能會工作正常,但改變你的構建只是爲了滿足Jenkins構建接口要求有點不方便。 我通常這樣做的方式是設置一個構建參數,說一個'選擇',並讓用戶可以從該下拉列表中選擇他們想要調用的目標。

說這個選擇參數被稱爲target,那麼你在'invoke ant'構建部分所需要做的就是引用%target%並且Jenkins會替換你。

無論您選擇「選擇」還是其他類型的構建參數(例如文本),都將取決於您的特定需求。