如何根据命令行参数调用目标?例如,我想要
ant -Dbits=32 test
致电<target name="test-32">
和
ant -Dbits=64 test
致电<target name="test-64">
我试过了:
<target name="test-32">
...
</target>
<target name="test-64">
...
</target>
<target name="test" depends="test-${bits}">
但是当我用:
运行脚本时ant -Dbits=32 test
我收到以下错误:
目标“test - $ {bits}”在项目中不存在
答案 0 :(得分:2)
你可以尝试像
这样的技巧<target name="test.type">
<property name="run.test${bits}" value="yes"/>
</target>
<target name="test32" if="run.test32">
...
</target>
<target name="test64" if="run.test64">
...
</target>
<target name="test" depends="test.type, test32, test64"/>
或者,如果正如您在注释中所建议的那样,32位和64位情况之间的差异只是一个属性值(编译器标志),那么您可以使用<condition>
设置该属性,例如< / p>
<target name="test">
<!-- value="..." is the value to use if the condition is true,
else="..." is the value to use if the condition is false -->
<condition property="compiler.arch" value="x86_64" else="i386">
<equals arg1="${bits}" args2="64" />
</condition>
<!-- use ${compiler.arch} here -->
</target>
答案 1 :(得分:-1)
尝试以下方法:
<target name="test">
<antcall target="test-${bits}"/>
</target>