
最近用Grails开发一个小网站(IDEA 10),想用Gant build整个项目,在该项目下创建了build.gant,想调用Grails下的一些script的task做些事情,于是参考了Grails文档和网上的一些例子,创建了最简单的task:
grailsHome = ant.project.properties."environment.GRAILS_HOME"
//includeTargets << new File ('${grailsHome}/scripts/_GrailsInit.groovy')
includeTargets << grailsScript('_GrailsInit')
//includeTargets << grailsScript('Init')
target(test: 'The default target') {
//depends(init)
println "home = ${grailsHome}"
ant.echo(message: 'running build.gant')
}
setDefaultTarget(test)可是无论使用哪个includeTargets,都在该行发生问题,
build, line 4 -- Error evaluating Gantfile:
No signature of method: build.grailsScript() is applicable for argument types:
(java.lang.String) values: [_GrailsInit]无论Include Init.groovy还是_GrailsInit.groovy都一样。
可是使用的是文档提供的例子。为什么?

对于Grails的Script,它只能在Grails环境中使用,直接用“grails 脚本名”即可。关于如何创建Grails脚本,可参见Grails的文档,里面说得很清楚。
不太清楚你为什么要用Gant,用Grails你已经完全可以进行编译、运行、测试、打包,用相应的插件甚至还可以直接部署。有什么东西非要让你去直接使用Gant呢?其实在Grails环境下根本就不需要这样多此一举!直接使用Grails的脚本和事件机制,就能够完全做到Gant想要做到的内容。而且,这些就是建立在Gant基础之上的。换种思路吧!

最新评论
9 周 5 小时之前
9 周 1 天之前
11 周 5 天之前
11 周 5 天之前
17 周 2 天之前
17 周 4 天之前
19 周 3 天之前
20 周 1 天之前
20 周 2 天之前
20 周 5 天之前