Comment exécuter des cibles à partir d'un Gant contrôleur Grails?
Question
Supposons que j'ai un bloc de code Gant:
target(echo:"test"){
ant.echo(message:"hi")
}
setDefaultTarget("echo")
Ceci est habituellement exécuté à partir d'une ligne de commande.
Comment pourrais-je placer le bloc dans un contrôleur Grails et l'exécuter à partir de là?
La solution
Vous pouvez utiliser AntBuilder pour cela:
class FooController {
def index = {
def ant = new AntBuilder()
ant.echo(message:"hi")
}
}
Autres conseils
Vous pouvez créer un script groovy par exemple DynaScript_.groovy qui contient votre code et placez ce Gant fichier script dans le {} grailsHome / scripts dossier.
Et alors vous pouvez appeler le fichier de script de votre contrôleur comme ceci:
class FooController {
def index = {
def process = "cmd /c grails dyna-script".execute()
def out = new StringBuilder()
process.waitForProcessOutput(out, new StringBuilder())
println "$out"
}
}
Il est important que la fin de votre nom de script avec un trait de soulignement.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow