Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 呼叫a<;宏定义>;对于每个<;路径元素>;在a<;路径>;蚂蚁_Ant_Ant Contrib - Fatal编程技术网

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”等等