在ant脚本中定义for循环中的两个参数

时间:2015-03-30 00:38:20

标签: ant ant-contrib

我正在研究ant脚本,我正在定义两个参数,但脚本说你已经定义了param.Can yopu定义了如何在ant脚本中为for循环定义两个参数。

    <project name="tomcat_win_deploy" basedir="." default="usage">
        <!--taskdef resource="net/sf/antcontrib/antcontrib.properties"/-->
        <taskdef resource="net/sf/antcontrib/antlib.xml"/>

      <target name="env.copy.local.props">
        <for param="host" list="${deploy.host}" param="path" list="${deploy.path}">
          <sequential>
            <copy todir="\\@{host}\${deploy.path}\conf\"
                  file="Properties/${deploy.env}/local_for_test.properties"
                  overwrite="true"/>
          </sequential>
        </for>

  </target>
 </project>

1 个答案:

答案 0 :(得分:1)

一种方法可能是定义一个分隔属性对列表,并在循环中处理它,将每个属性分成两个值。

所以不要使用单独的主机和路径列表:

hosts=a,b,c
paths=/a/,/b/,/c/

您可能只有一个host_path列表:

host_path=a /a/, b /b/, c /c/

然后诀窍是如何拆分变量并在循环中使用它们(而不是运行到ant“属性是不可变的”特性)。

This answer展示了如何使用Ant Flaka插件来实现这一目标。