groovy inside ant: cómo acceder a los refids de grooy que están definidos por las etiquetas de hormigas

StackOverflow https://stackoverflow.com/questions/225063

  •  03-07-2019
  •  | 
  •  

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?

¿Fue útil?

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
scroll top