2つのターゲットを持つガントスクリプトAがあります
t1-デフォルトのターゲットt2-別のターゲット
走っても
grails A t2
デフォルトのターゲットは実行されますか?デフォルト以外のターゲットを実行するにはどうすればよいですか?grails A --target ='t2'などを試しましたが、機能しません。
適切な方法があるかどうかはわかりませんが、これをロードしてそのターゲットをデフォルトとして設定する2番目のスクリプト( "T2.groovy")を作成できます。
includeTargets << new File("path/to/YourScript")
setDefaultTarget("t2")
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
}
これは私が取った別のアプローチです
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)
パラメータを使用してスクリプトを実行します。そのパラメータは実行するメソッドの名前です:)そのメソッドは実行されます。