2011-04-06 61 views
1
<?xml version="1.0"?> 
<project name="sortlist11" default="sortlist11"> 
    <taskdef resource="net/sf/antcontrib/antcontrib.properties" /> 
    <property name="my.list" value="z,y,x,w,v,u,t" /> 
    <property name="my.list1" `value="5,3,6,1,8,4,6" `/> 

    <target name="sortlist11"> 
     <sortlist property="my.sorted.list" value="${my.list}" delimiter="," /> 
     <sortlist property="my.sorted.list1" value="${my.list1}" delimiter="," /> 
     <echo message="${my.sorted.list}" /> 
     <echo message="${my.sorted.list1}" /> 
    </target> 
</project> 

这里第二回声打印1,3,4,5,6,6,8但我如何删除冗余?排序以及删除重复

+0

我想结果为1,3,4,5,6,8意味着没有重新编号。请任何人帮助我预先感谢。 – picnic4u 2011-04-07 06:15:07

回答

2

通过Bean Scripting Framework在JVM中运行的每种语言都可以在ant中使用,并且可以完全访问ant api。这里有一个解决方案Groovy为你的问题=

<project> 
    <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"/> 

    <property name="my.list" value="z,y,x,w,v,u,t"/> 
    <property name="my.list1" value="5,3,6,1,8,4,6"/> 

    <groovy> 
    properties.'my.sorted.list' = properties.'my.list'.split(',').sort().toString() 
    properties.'my.sorted.list1' = properties.'my.list1'.split(',').toList().unique().sort().toString() 
    </groovy> 

    <echo> 
    $${my.sorted.list} => ${my.sorted.list} 
    $${my.sorted.list1} => ${my.sorted.list1} 
    </echo> 
</project> 
+0

当我运行此代码它显示以下错误'taskdef类org.codehaus.groovy.ant.Groovy无法找到使用类加载器AntClassLoader []' – picnic4u 2011-04-08 08:39:12

+0

非常感谢Rebse。它现在工作正常..... – picnic4u 2011-04-08 11:25:08