gro内部的蚂蚁:如何访问由gro标签定义的grooy中的refid
题
我在ant构建文件中使用了一个groovy代码段。在groovy代码中,我试图引用一个已经在groovy部分之外定义的文件集,如下所示:
<target name="listSourceFiles" >
<fileset id="myfileset" dir="${my.dir}">
<patternset refid="mypatterns"/>
</fileset>
<groovy>
def ant = new AntBuilder()
scanner = ant.fileScanner {
fileset(refid:"myfileset")
}
...
</groovy>
</target>
当我执行此操作时,我收到以下错误消息:
Buildfile: build.xml
listSourceFiles:
[groovy]
BUILD FAILED
d:\workspace\Project\ant\build.xml:13:
Reference myfileset not found.
我错过了什么?
解决方案
根据 Groovy Ant任务文档,groovy任务的 绑定 之一是当前的 AntBuilder , ant
。
所以修改你的脚本以删除冲突的'ant'def我让它运行没有错误:
<project name="groovy-build" default="listSourceFiles">
<taskdef name="groovy"
classname="org.codehaus.groovy.ant.Groovy"/>
<patternset id="mypatterns">
<include name="../*.groovy"/>
</patternset>
<target name="listSourceFiles" >
<fileset id="myfileset" dir="${my.dir}">
<patternset refid="mypatterns"/>
</fileset>
<groovy>
scanner = ant.fileScanner {
fileset(refid:"myfileset")
}
</groovy>
</target>
</project>
不隶属于 StackOverflow