什么类路径用于执行 Grails' application.groovy

What classspath is used for executing Grails' application.groovy

什么 classspath 用于 compiling/executing Grails 的 application.groovy?

在我的 application.groovy 中,我实例化了一个自定义 class(包含在依赖项的 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)添加到适当的 class 路径,但我不确定是哪一个。

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

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

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