你可能对这些下划线词语作为Grails脚本的名称感到疑惑。
用_internal_作为一个脚本或者用没有对应的“command”的其他单词,这些就是Grails的决定方式。
因此无法运行例如“grails _grails-settings”这样的命令。
这也就是为什么它们没有个默认的任务。
内部脚本是和代码共享重用相关的。
实际上,我们建议在自己的脚本中使用类似的方式:把你的所有任务放入一个内部脚本中可以更容易的共享,然后提供简单的命令脚本来解析任何命令行参数并委托给内部脚本中的任务。
假如你有一个脚本要运行一些功能测试——你可以将它们像这样分离:[code]./scripts/FunctionalTests.groovy:
includeTargets << new File("${basedir}/scripts/_FunctionalTests.groovy")
target(default: “为 这个 项目运行功能测试。”) {
depends(runFunctionalTests)
}
./scripts/_FunctionalTests.groovy:
includeTargets << grailsScript("_GrailsTest")
target(runFunctionalTests: “运行功能测试。”) {
depends(…)
…
}[/code]以下是在编写脚本时常用的一些指导方案:
• 将脚本分为“command”脚本和内部脚本。
• 将大部分执行脚本放入内部脚本。
• 将参数解析放入“command”脚本。
• 要把参数传入一个任务,先创建一些脚本变量并在调用任务前将它们初始化。
• 为了避免名称冲突,可以为脚本变量分配闭包以替代任务。之后你可以直接将参数传入闭包。