2014-02-14 6 views
2

Я написал собственный скрипт gant, который отлично работает из командной строки. Теперь мне нужно, чтобы запустить этот сценарий из Grails проекта, как это:Выполнение скрипта gant из проекта grails

def outputMessage 

try{ 

    GroovyScriptEngine engine = new GroovyScriptEngine("/www", this.getClass().getClassLoader()); 
    engine.run("scripts/MyOwnScript_.groovy", "param1 param2") 
    outputMessage = "<br> OK: Script run successfully" 
} 
catch (Exception e) { 
    outputMessage += "<br> ERROR: There has been running the script" 
} 

Ошибки я получаю «Нет таких свойств: includeTargets для класса: MyOwnScript_», так как мой Gant сценарий требует некоторых других сценариев.

Кто-нибудь знает правильный способ заставить его работать?

ответ

0

Отвечая на мой собственный вопрос. Основная проблема заключалась в том, что мне нужно запустить грабли, используя полный путь следующим образом:

Map<String, String> env = System.getenv() 
final processBuilder = new ProcessBuilder() 
processBuilder.directory(new File("folderFromWhereIWantToRunTheGantScript")) 
processBuilder.command([env['GRAILS_HOME']+"/bin/grails","MyOwnScript param1 param2"]) 
println processBuilder.directory() 
Process proc = processBuilder.start() 
proc.consumeProcessOutput(out, err) 

proc.waitFor() 
0

Вы пытались получить путь к папке сценария и выполнить внешний процесс, как

["groovy", "scripts/MyOwnScript_.groovy", "param1", "param2"].execute() 

Смотрите here для получения дополнительной информации о запуске внешнего процесса в заводной

Смежные вопросы