什么classspath用于执行Grails的application.groovy

时间:2016-11-11 02:03:42

标签: grails grails3

使用什么classspath来编译/执行Grails的application.groovy?

在我的application.groovy中,我实例化一个自定义类(包含在依赖项的jar中)并将其分配给其中一个配置属性,如下所示:

environments {
    production {
        configProperty = new com.example.CustomClass()

我最近将我的应用程序从Grails 3.1.5升级到3.2.2,现在不再有效了。

当我尝试运行grails run-app时收到如下错误:

Error occurred running Grails CLI: startup failed:
script14788250424471597489853.groovy: 43: unable to resolve class com.example.CustomClass
 @ line 43, column 33.
        configProperty = new com.example.CustomClass()

(请注意,代码位于production块中,但我正在开发中运行(run-app)。这让我觉得这个脚本的编译失败了。)

所以我猜我只需要将我的依赖项(包含CustomClass)添加到相应的类路径中,但我不确定是哪一个。

我正在使用gradle,并在build.gradle文件中包含以下内容,以引入包含CustomClass的依赖项:

buildscript {
    dependencies {
        classpath "com.example:custom-module:1.1"
// ...
dependencies {
    compile group: 'com.example', name: 'custom-module', version:'1.1'
}

1 个答案:

答案 0 :(得分:1)

grails-app/conf/application.groovy文件不应引用应用程序类,因为它在编译之前被读取。如果您希望在配置中引用应用程序类,请使用grails-app/conf/runtime.groovy