如何反转Ant中Path的元素?

时间:2010-09-16 11:55:54

标签: ant

我在Ant中有一个Path集合,我需要在逆序中循环它。 我使用AntContrib的for循环,如下所示:

<for param="foo">
   <path refid="bar" />
   <sequential> ... </sequantial>
</for>

我需要以相反的顺序遍历bar的元素。我无法改变Path的创建方式。我总是可以在Java中编写一个自定义Ant任务,但是我的构建目前在没有任何自定义任务的情况下运行,而且我宁愿避免这种看似简单的任务。

Ant JavaScript能够做到这一点吗? (如果是的话,怎么样?)

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

我认为“纯蚂蚁”解决方案可能有点扭曲,但您可以按照建议使用script task

这将设置一个属性baz,其中包含引用标识为bar的路径的反向。

<script language="javascript"><![CDATA[
    project.setProperty( "baz", project.getReference( "bar" )
        .toString().split( ":" ).reverse( ).join( ":" ) );
]]></script>

希望能够适应您的确切需求。

答案 1 :(得分:0)

创建一个变量(Ant Contrib中的“var”类型)以相反的顺序存储路径元素。

然后,使用for循环将路径作为嵌套路径,在条件中使用“equals”来检查变量是否为空。

之后,如果是,只需将for循环参数的值复制到变量中,否则将for循环参数的值复制到变量中,然后将分隔符和变量值复制(即进行连接)

最后,您可以使用“list”属性和“delimiter”属性在for循环中使用创建的变量。

您可以在我自己的源代码here中看到我的意思。