2011-04-11 77 views

回答

0

最簡單(也可能是最慢)的方法是在事件處理函數中調用grails。這有點棘手,因爲generate-dto會生成一個編譯事件,但是您可以使其在系統屬性上有條件。第二個問題是所需的輸入。按照慣例,grails腳本都應該接受--non-interactive而不會提示用戶,但是dto插件似乎不遵循這一點。像Linux或MacOS X這樣的Posix系統的解決方法是使用yes命令作爲grails輸入。

這裏就是我得到了它的工作:

// scripts/_Events.groovy 
eventCompileStart = { args -> 
    if (Boolean.valueOf(System.getProperty('in.generate', "false"))) { 
     // skip 
    } else { 
     ['bash', '-c', 'yes | grails -Din.generate=true generate-dto --all'].execute() 
    } 
} 
+0

愛,更有趣的命令執行。我需要這個在Windows,Linux和Mac開發環境中運行,但我想我可以用cmd/c來解決問題。 – 2011-04-13 00:23:55

0

嘗試使用--non-interactive argument運行整個編譯。我告訴Grails跳過用戶的所有問題和輸入,例如。如果在詹金斯(哈德森)工作。我不確定它是否會有所幫助,但您可以嘗試。我在Hudson上使用這個參數來測試我的應用程序,並跳過關於更新插件的問題。