Как запустить Gant Targets из контроллера Grails?
Вопрос
Предположим, у меня есть блок кода Gant:
target(echo:"test"){
ant.echo(message:"hi")
}
setDefaultTarget("echo")
Обычно это запускается из командной строки.
Как я мог поместить блок в контроллере Grails и запустить его оттуда?
Решение
Вы можете использовать Antbuilder для этого:
class FooController {
def index = {
def ant = new AntBuilder()
ant.echo(message:"hi")
}
}
Другие советы
Вы можете создать Groovy Script Same DynaScript_.grovy, который содержит ваш код GANT и поместите этот файл скрипта в папку {Grailshome}/Scripts.
И тогда вы можете вызвать файл скрипта из вашего контроллера так:
class FooController {
def index = {
def process = "cmd /c grails dyna-script".execute()
def out = new StringBuilder()
process.waitForProcessOutput(out, new StringBuilder())
println "$out"
}
}
Важно, чтобы имя вашего сценария заканчивалось подчеркиванием.
Не связан с StackOverflow