Как вызвать цель не по умолчанию в скрипте gant grails

У меня есть сценарий Ганта A с двумя целями.

t1 — цель по умолчанию t2 — другая цель

Даже когда я бегу

Грааль А т2

цель по умолчанию запущена? Как я могу запустить цель не по умолчанию? Я пробовал grails A --target='t2' и т. д., но не работает.


person Paras    schedule 25.06.2010    source источник
comment
ты когда-нибудь это понимал? Я пытаюсь иметь один файл сценария и иметь возможность запускать несколько разных целей.   -  person chrislovecnm    schedule 10.10.2011
comment
Извините, я не мог этого понять. Это было давно, поэтому я не помню точно, что я делал. Но насколько я помню, я последовал совету Берта и создал еще один сценарий.   -  person Paras    schedule 18.10.2011


Ответы (3)


Я не уверен, есть ли правильный способ сделать это, но вы можете написать второй скрипт ("T2.groovy"), который загружает этот и устанавливает эту цель по умолчанию, например.

includeTargets << new File("path/to/YourScript")

setDefaultTarget("t2")
person Burt Beckwith    schedule 25.06.2010
comment
Спасибо Берт. Это то, что я сделал на данный момент. Я создал два скрипта T1.groovy и T2.groovy. - person Paras; 28.06.2010

Доработка подхода 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   
}
person Leo O'Donnell    schedule 01.12.2011

Это еще один подход, который я использовал

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)

Вы запускаете скрипт с параметром. Этот параметр является именем метода для запуска :) Этот метод затем выполняется.

person chrislovecnm    schedule 19.10.2011