我有一个命令接受我需要执行的变量长度的参数。我很幸运,我需要传递给命令的蚂蚁的参数形式为“-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
如何测试属性是否未预设? 任何更好的解决方案