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