1

我有类似的东西:

<groovy>
    import org.apache.tools.ant.types.FileSet
    import org.apache.tools.ant.types.selectors.FilenameSelector

    def aoeu = new FileSet()
    aoeu.setDir(new File('aoeu'))

    def snth = new new FilenameSelector()
    snth.setName('snth')

    aoeu.add(snth)

    project.references['aoeu'] = aoeu
</groovy>

但:

<echo message="${toString:aoeu}"/>

发出一个NullPointerException.

如何解决上述问题?

4

1 回答 1

1

groovy 任务预先配置了与AntBuilder实例和 Ant“项目”对象的绑定。它使 groovy 对于在构建中创建编程逻辑非常有吸引力。

以下示例演示了如何在 groovy 脚本中创建文件集:

<project name="demo" default="process-text-files">

    <path id="build.path">
        <pathelement location="/path/to/jars/groovy-all-2.1.1.jar"/>
    </path>

    <target name="process-text-files">
        <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>
        <groovy>
            ant.fileset(id:"textfiles",dir:"src", includes:"**/*.txt")

            project.references.textfiles.each {
                println it
            }
        </groovy>
    </target>

</project>

以下示例演示了引用在脚本外部创建的普通文件集(我的首选方式):

于 2013-04-02T17:32:07.553 回答