我在Ant中有一个Path集合,我需要在逆序中循环它。
我使用AntContrib的for
循环,如下所示:
<for param="foo">
<path refid="bar" />
<sequential> ... </sequantial>
</for>
我需要以相反的顺序遍历bar
的元素。我无法改变Path的创建方式。我总是可以在Java中编写一个自定义Ant任务,但是我的构建目前在没有任何自定义任务的情况下运行,而且我宁愿避免这种看似简单的任务。
Ant JavaScript能够做到这一点吗? (如果是的话,怎么样?)
任何帮助将不胜感激!
答案 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中看到我的意思。