2016-04-06 45 views
0

我的Ant腳本應該下載一個ZIP文件,其中包含要安裝在數據庫(Oracle或PostgreSQL)中的設置文件並生成轉儲。生成不同的轉儲文件,具體取決於設置文件中提供的屬性數據。有條件加載Ant中的屬性文件

我有3個屬性文件:

  1. user.properties:這包含從詹金斯並且遠離該值提供的各種細節:prepare.MTdump.generate=true
  2. nonMT.properties
  3. MT.properties

是否有可能在Ant中加載第一個屬性文件user.properties並取決於條件(例如,如果prepare.MTdump.generate=true)載入MT.properties或者假載入nonMT.properties

我一直無法添加IF條件來加載屬性文件。我甚至嘗試了unless條件<target>,但一直未能達到要求。

+0

請添加你試過的東西。有條件地加載文件是非常有可能的。 – Rao

回答

1

如果您使用的螞蟻的contrib,這應該工作:

<property file="user.properties"/> 
<if> 
    <equals arg1="${prepare.MTdump.generate}" arg2="true"/> 
    <then> 
     <property file="MT.properties"/> 
    </then> 
    <else> 
     <property file="nonMT.properties"/> 
    </else> 
</if> 

否則,你可以使用的條件。只需運行下面的loadProperties目標。

<property file="user.properties"/> 

<target name="test.if.use.MT"> 
    <condition property="useMT"> 
     <equals arg1="${prepare.MTdump.generate}" arg2="true"/> 
    </condition> 
    <condition property="useNonMT"> 
     <not> 
      <equals arg1="${prepare.MTdump.generate}" arg2="true"/> 
     </not> 
    </condition> 
</target> 

<target name="loadMTProperties" if="${useMT}" depends="test.if.use.MT"> 
    <property file="MT.properties"/> 
</target> 

<target name="loadNonMTProperties" if="${useNonMT}" depends="test.if.use.MT"> 
    <property file="nonMT.properties"/> 
</target> 

<target name="loadProperties" depends="loadMTProperties, loadNonMTProperties"/> 
+0

非常感謝它使用ant-contrib爲我工作 – user3754863