Frage

Angenommen, ich einen Block von Gant-Code haben:

 target(echo:"test"){
    ant.echo(message:"hi")
 }
 setDefaultTarget("echo")

Dies wird in der Regel von einer Befehlszeile ausgeführt werden.

Wie kann ich den Block in einem Grails-Controller legen und von dort ausführen?

War es hilfreich?

Lösung

Sie können AntBuilder für diese verwenden:

class FooController {

   def index = {
      def ant = new AntBuilder()
      ant.echo(message:"hi")
   }
}

Andere Tipps

Sie können ein starkes Skript sagen DynaScript_.groovy erstellen, die Gant-Code enthält und legen Sie diese Skriptdatei im {grailsHome} / scripts Ordner.

Und dann können Sie die Skriptdatei aus Ihrem Controller wie folgt aufrufen:

class FooController {

     def index = {
           def process  =  "cmd /c grails dyna-script".execute()
           def out = new StringBuilder()
       process.waitForProcessOutput(out, new StringBuilder())
           println "$out" 
     }
}

Es ist wichtig, dass Ihr Skript Name endet mit einem Unterstrich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top