我有类似的东西:
<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
。
如何解决上述问题?
答案 0 :(得分:1)
groovy task已预先配置了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>
以下示例演示了引用在脚本外部创建的普通文件集(我首选的方法):