在Grails中的_Events.groovy之前执行哪个文件? [英] Which file gets executed before _Events.groovy in Grails?

查看:116
本文介绍了在Grails中的_Events.groovy之前执行哪个文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于尚未编译的类,我在 _Events.groovy 上有一个导入。我想在脚本执行前编译文件。任何关于Grails启动执行顺序的说明都会受到赞赏。

解决方案

您必须轻松加载 _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){
projectCompiler。 compileAll()
load(className)
}
}

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

自那时以来,它有所改变。 GrailProjectCompiler 是从 Graeme Rocher here


I have an import on _Events.groovy for a class that is not yet compiled. I want to compile the file before the script is executed. Any clarification on Grails startup execution sequence is appreciated.

解决方案

You will have to "soft load" the class in _Events.groovy by doing something like this:

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)
    }
}

The above code (from grails-cucumber) was originally based on spock's code.

It has changed a little bit since then. The GrailProjectCompiler stuff was a tip from Graeme Rocher here.

这篇关于在Grails中的_Events.groovy之前执行哪个文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆