0

我有一个接受我需要执行的可变长度参数的命令。幸运的是,我需要传递给命令的 ant 参数的格式为“-Dkey=value”

蚂蚁引导 -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

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

4

0 回答 0