Cómo ejecutar los objetivos de Gant desde el interior de un controlador de Grails?
Pregunta
Supongamos que tengo un bloque de código Gant:
target(echo:"test"){
ant.echo(message:"hi")
}
setDefaultTarget("echo")
Esto generalmente se ejecuta desde una línea de comandos.
¿Cómo iba a colocar el bloque en un controlador de Grails y ejecutarlo desde allí?
Solución
Puede utilizar AntBuilder para esto:
class FooController {
def index = {
def ant = new AntBuilder()
ant.echo(message:"hi")
}
}
Otros consejos
Se puede crear un guión maravilloso DynaScript_.groovy digamos que contiene su código de Gant y colocar este archivo de script en el grailsHome {} / carpeta de scripts.
Y a continuación, puede invocar el archivo de secuencia de comandos desde el controlador de la siguiente manera:
class FooController {
def index = {
def process = "cmd /c grails dyna-script".execute()
def out = new StringBuilder()
process.waitForProcessOutput(out, new StringBuilder())
println "$out"
}
}
Es importante que sus extremos nombre del script con un guión bajo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow