我正在研究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>
答案 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插件来实现这一目标。