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à?

Était-ce utile?

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
scroll top