ant exec任务可变长度arg

时间:2012-07-11 19:24:48

标签: ant

我有一个命令接受我需要执行的变量长度的参数。我很幸运,我需要传递给命令的蚂蚁的参数形式为“-Dkey = value”

ant bootstrap -Dkey1 = value1 -Dkey2 = value2 -Dkey3 = value3 ....

-Dkey3 = value3可能存在也可能不存在。如果已经定义了key3,我需要传递给cmd的执行任务,如

cmd -Dkey1=value1 -Dkey2=value2 -Dkey3=value3 

否则     cmd -Dkey1 = value1 -Dkey2 = value2

我希望有更合理的方法来做像

这样的事情
<target name="bootstrap">
   <exec executable="cmd">
       <arg value="-Dkey1=${key1}"/>
       <arg value="-Dkey2=${key2}"/>
       <arg value="-Dkey3=${key3}">
           <condition>
                <isset property="key3"/>
           </condition>
       </arg>
       ....
    </exec>

但arg不喜欢条件。

我也想过

<target name=bootstrap depends="with_key3, without_key3/>
<target name="with_key3" if="key3">
    <exec executable="cmd">
       <arg value="-Dkey1=${key1}"/>
       <arg value="-Dkey2=${key2}"/>
       <arg value="-Dkey3=${key3}"/>
    </exec>
</target>
<target name="without_key3" if="?????"
      <exec executable="cmd">
       <arg value="-Dkey1=${key1}"/>
       <arg value="-Dkey2=${key2}"/>
    </exec>
</target

如何测试属性是否未预设? 任何更好的解决方案

0 个答案:

没有答案