在Grails的_Events.groovy之前执行哪个文件?

时间:2014-06-12 07:47:06

标签: grails

我在_Events.groovy上导入了尚未编译的类。我想在执行脚本之前编译该文件。任何关于Grails启动执行顺序的澄清都表示赞赏。

1 个答案:

答案 0 :(得分:1)

您需要通过执行以下操作在_Events.groovy中“加载”该类:

import org.codehaus.groovy.grails.compiler.GrailsProjectCompiler


GrailsProjectCompiler projectCompiler = new GrailsProjectCompiler(pluginSettings)
projectCompiler.configureClasspath()

....
loadClass ('<your fully qualified class name>')
....

loadClass = { className ->
    def load = { name ->
        classLoader.loadClass (name)
    }

    try {
        load (className)
    } catch (ClassNotFoundException ignored) {
        projectCompiler.compileAll()
        load (className)
    }
}

上述代码(来自grails-cucumber)最初基于spock的代码。

从那时起它发生了一些变化。 GrailProjectCompiler内容来自Graeme Rocher here