groovy inside ant: как получить доступ к рефидам из grooy, которые определены тегами ant - PullRequest
0 голосов
/ 22 октября 2008

Я использую фрагмент кода Groovy в файле сборки ant. Внутри 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.

Чего мне не хватает?

1 Ответ

1 голос
/ 22 октября 2008

Согласно документации Groovy Ant Task , одна из привязок для задания 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...