У меня есть сценарий Ганта A с двумя целями.
t1 — цель по умолчанию t2 — другая цель
Даже когда я бегу
Грааль А т2
цель по умолчанию запущена? Как я могу запустить цель не по умолчанию? Я пробовал grails A --target='t2' и т. д., но не работает.
У меня есть сценарий Ганта A с двумя целями.
t1 — цель по умолчанию t2 — другая цель
Даже когда я бегу
Грааль А т2
цель по умолчанию запущена? Как я могу запустить цель не по умолчанию? Я пробовал grails A --target='t2' и т. д., но не работает.
Я не уверен, есть ли правильный способ сделать это, но вы можете написать второй скрипт ("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)
Вы запускаете скрипт с параметром. Этот параметр является именем метода для запуска :) Этот метод затем выполняется.