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")
}
}
他のヒント
Gant Codeを含むDynascript_.groovyというGroovyスクリプトを作成し、このスクリプトファイルを{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