使用什么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'
}
答案 0 :(得分:1)
grails-app/conf/application.groovy
文件不应引用应用程序类,因为它在编译之前被读取。如果您希望在配置中引用应用程序类,请使用grails-app/conf/runtime.groovy