groovy inside ant: cómo acceder a los refids de grooy que están definidos por las etiquetas de hormigas
Pregunta
Estoy usando un fragmento de código maravilloso en un archivo de compilación ant. Dentro del código groovy, estoy tratando de hacer referencia a un conjunto de archivos que se ha definido fuera de la parte groovy, como esto:
<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>
Cuando ejecuto esto, aparece el siguiente mensaje de error:
Buildfile: build.xml
listSourceFiles:
[groovy]
BUILD FAILED
d:\workspace\Project\ant\build.xml:13:
Reference myfileset not found.
¿Qué me estoy perdiendo?
Solución
De acuerdo con Groovy Ant Task documentación, uno de los enlaces para la tarea genial es el actual AntBuilder , ant
.
Así que modifico tu script para eliminar la definición de 'ant' que está en conflicto. Tengo que ejecutarlo sin errores:
<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow