代码之家  ›  专栏  ›  技术社区  ›  mycroft

如何在Ant中反转路径的元素?

ant
  •  4
  • mycroft  · 技术社区  · 14 年前

    我在Ant中有一个路径集合,需要在 倒序 . 我用AntContrib的 for 循环,像这样:

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

    bar 以相反的顺序。我无法改变路径最初是如何创建的。我总是可以用Java编写一个定制Ant任务,但是我的构建目前没有任何定制任务,对于这样一个看似简单的任务,我宁愿避免这样做。

    任何帮助都将不胜感激!

    2 回复  |  直到 14 年前
        1
  •  2
  •   martin clayton egrunin    14 年前

    我认为“纯蚂蚁”的解决方案可能有点扭曲,但你可以使用 script task 如你所说。

    这将设置一个属性 baz 包含引用id为的路径的反向 bar .

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

    希望能适应您的精确需求。

        2
  •  0
  •   gouessej    8 年前

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

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

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

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

    here