Выполнение скрипта Ганта из проекта Grails

Я написал свой собственный скрипт Ганта, который отлично работает из командной строки. Теперь мне нужно запустить этот скрипт из проекта 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 требует некоторых других сценариев.

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

2 ответа

Решение

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

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()

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

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

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

Другие вопросы по тегам