Apache Ant - 为目标使用命令行参数

时间:2014-03-31 08:40:45

标签: java ant

如何根据命令行参数调用目标?例如,我想要

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}”在项目中不存在

2 个答案:

答案 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>