如何将参数传递给ant task的依赖字段

时间:2013-05-20 16:50:25

标签: ant

我有build.xml应该动态接收depends字段的参数。 我在其他app.xml中定义了此参数,例如:

ops=op1, op2, op3,op4,op5,.... opn

然后我将此app.xml导入build.xml,并希望在那里使用参数ops

<project name="Project" basedir="." default="help">
    <target name="test" depends="{$ops}" description="executea series of commands in ant">
      <echo message="batch operation job done.  tasks = {$ops}"/>
    </target>
</project>

如何将参数从一个ant文件传递到另一个?

2 个答案:

答案 0 :(得分:2)

depends参数不接受属性。

Ant使用依赖关系矩阵来确定应该构建什么以及以什么顺序构建。在执行构建文件本身的任何部分之前计算此矩阵,因此在完成此操作时甚至不会设置属性。

你想要完成什么?也许如果我们能够更好地了解您的需求,我们可以帮助您。 Ant不是像BASH或Python那样的脚本语言。

答案 1 :(得分:0)

如前所述,您无法将属性放入Depends字段中。但是,如果要设置属性,则可以在“If”字段中使用它。实施例

<project name="appProject">

  <target name="test" depends="target1,target2,target3" description="execute series of commands"/>

  <target name="target1" if="do.target1">
    <echo message="Target1 executed." />
  </target>

  <target name="target2" if="do.target2">
    <echo message="Target2 executed." />
  </target>

  <target name="target3" if="do.target3">
    <echo message="Target3 executed." />
  </target>

</project>

然后在build.xml中设置给定的目标标志do.target1,do.target2或do.target3并执行它。基本上你想拥有什么。在If字段中,仅检查属性的值。此外,您不必对属性使用$ {}构造。