我有一个有两个目标的gant脚本
t1 - 默认目标 t2 - 另一个目标
即使我跑
grails A t2
默认目标是否已运行?如何运行非默认目标? 我已经尝试过Grails A --target ='t2'等但是没有用。
答案 0 :(得分:3)
我不确定是否有正确的方法,但您可以编写第二个脚本(“T2.groovy”)来加载此脚本并将该目标设置为默认值,例如。
includeTargets << new File("path/to/YourScript")
setDefaultTarget("t2")
答案 1 :(得分:3)
对argsParsing方法的调整是运行argsMap中的元素并迭代地依赖它们。所以你可以调用你的脚本:
grails myScript do-this do-that do-the-other
scriptName = 'myScriptName'
includeTargets << grailsScript("_GrailsArgParsing")
剪断
target(main: "Default Target") {
depends(parseArguments)
if(argsMap?.size() == 0) {
depends(scriptError)
}
argsMap.each() {
if (it.value) {
println "${scriptName} building: ${it.value}"
depends(it.value)
}
else {
depends(scriptError)
}
}
}
剪断
target(help: "Print a help message") {
println "${scriptName}: possible targets are..."
println "\thelp - print this help message"
}
target(scriptError: "Print an error and die") {
println "${scriptName}: Please specify at least one target name"
depends(help)
exit 1
}
答案 2 :(得分:1)
这是我采取的另一种方法
includeTargets << grailsScript("_GrailsArgParsing")
剪断
target(main: "a script") {
if(!argsMap.target)
throw new IllegalArgumentException("please specify target name with --target option")
depends(argsMap.target)
}
setDefaultTarget(main)
使用参数运行脚本。该参数是要运行的方法的名称:)然后该方法被执行。