Ant 呼叫a<;宏定义>;对于每个<;路径元素>;在a<;路径>;蚂蚁
我有一个Ant 呼叫a<;宏定义>;对于每个<;路径元素>;在a<;路径>;蚂蚁,ant,ant-contrib,Ant,Ant Contrib,我有一个路径,如下所示: <path refid="myjarlocation"/> <foreach target="mytarget" param="jarloc"> <path refid="myjarlocation"/> </foreach> 现在我想迭代这个路径,对于路径中存在的每个值,我想调用一个macrodef,将该值作为要在marcodef中使用的属性之一 对于target,我们可以按如下方式轻松完成: <p
路径
,如下所示:
<path refid="myjarlocation"/>
<foreach target="mytarget" param="jarloc">
<path refid="myjarlocation"/>
</foreach>
现在我想迭代这个路径,对于路径中存在的每个值,我想调用一个macrodef,将该值作为要在marcodef中使用的属性之一
对于target,我们可以按如下方式轻松完成:
<path refid="myjarlocation"/>
<foreach target="mytarget" param="jarloc">
<path refid="myjarlocation"/>
</foreach>
我不能对每个都使用,因为我需要传递多个参数,所以我使用macrodef。因此,问题是如何迭代路径并调用宏定义而不是目标。我使用ant contrib的
for
任务迭代路径并将path元素传递给宏定义,从而完成了类似的工作
首先在项目中使用ant contrib-请参阅
接下来,在ant构建中定义macrodef,但您希望包含一些将占用path元素的属性。例如:
<macrodef name="awesome-macro">
<attribute name="path-to-deal-with"/>
<attribute name="unrelated-attribute"/>
<sequential>
...
</sequential>
</macrodef>
注意在for循环中使用了
@{path.element}
而不是${path.element}
来引用循环参数 通过使用ant contrib的for
任务来迭代路径,并将路径元素传递给宏定义,我做了类似的工作
首先在项目中使用ant contrib-请参阅
接下来,在ant构建中定义macrodef,但您希望包含一些将占用path元素的属性。例如:
<macrodef name="awesome-macro">
<attribute name="path-to-deal-with"/>
<attribute name="unrelated-attribute"/>
<sequential>
...
</sequential>
</macrodef>
注意在for循环中使用了
@{path.element}
而不是${path.element}
来引用循环参数 你所说的迭代这个路径是什么意思??这就是我的路径通过迭代的样子,我需要检索每个位置,即“1.jar”、“2.jar”等等,你所说的迭代这个路径是什么意思??这就是我的路径通过迭代的样子,我需要检索每个位置,即“1.jar”、“2.jar”等等