从grails事件调用grails命令?

时间:2011-04-11 14:24:35

标签: java events grails groovy build

我需要使用grails事件脚本中的参数调用插件。我该怎么做?

具体来说,我正试图与eventCompile挂钩以致电generate-dto --all,将y发送给STDIN。

2 个答案:

答案 0 :(得分:0)

尝试使用--non-interactive argument运行整个编译。我告诉Grails跳过用户的所有问题和输入,例如。如果在詹金斯(哈德森)担任工作。我不确定它是否会有所帮助,但你可以试试。我在Hudson上使用这个参数来测试我的应用程序并跳过有关更新插件的问题。

答案 1 :(得分: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()
    }
}