groovy inside ant: come accedere ai refid da grooy definiti dai tag ant
Domanda
Sto usando uno snippet di codice groovy in un file build ant. All'interno del codice groovy sto cercando di fare riferimento a un set di file che è stato definito al di fuori della parte groovy, in questo modo:
<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>
Quando eseguo questo, ricevo il seguente messaggio di errore:
Buildfile: build.xml
listSourceFiles:
[groovy]
BUILD FAILED
d:\workspace\Project\ant\build.xml:13:
Reference myfileset not found.
Cosa mi sto perdendo?
Soluzione
Secondo il Groovy Ant Task documentazione, uno dei vincoli per l'attività groovy è l'attuale AntBuilder , ant
.
Quindi, modificando il tuo script per eliminare la definizione di "formica" in conflitto, l'ho fatto funzionare senza errori:
<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow