Grails有一个叫做resources.groovy
的春豆的cofig。正如我从文档中理解的那样,它允许您使用loadBeans(%path%)
我试过这个:
println 'loading application config ...'
// Place your Spring DSL code here
beans = {
loadBeans("classpath:security") //i'm tried with "spring/security" and "spring/security.groovy" also
}
但是当grails运行时,它会记录以下错误:
Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Error evaluating bean definition script: class path resource [security] cannot be opened because it does not exist
Offending resource: class path resource [security]; nested exception is java.io.FileNotFoundException: class path resource [security] cannot be opened because it does not exist
at grails.spring.BeanBuilder.loadBeans(BeanBuilder.java:470)
at grails.spring.BeanBuilder.loadBeans(BeanBuilder.java:424)
at resources$_run_closure1.doCall(resources.groovy:13)
at resources$_run_closure1.doCall(resources.groovy)
... 45 more
脚本security.groovy
存在于grails-app/conf/spring
,并由 grails maven插件编译为target/classes/security.class
。
目录target/resources/spring
目前为空
我如何配置Grails或grails-maven-plugin来复制这个配置文件,而不是将它编译成类?
P.S。当我尝试在grails.config.locations = [ %path% ]
内使用conf/Config.groovy
包含配置脚本时,这个问题也出现了,我的groovy脚本编译成了类,因此,grails配置构建器无法找到它们:(
答案 0 :(得分:1)
<击> 你试过了吗?
println 'loading application config ...'
// Place your Spring DSL code here
beans = {
loadBeans("classpath:*security.groovy")
}
(这应该加载以security.groovy
结尾的类路径上的所有Groovy文件,并将它们解析为bean定义)。
击>
更新:找到interesting thread并以this message作为参考,我的理解是,一个技巧是在scripts/_Events.groovy
中使用ant来复制{{1}文件到.groovy
目录然后只需使用:
classesDirPath
这看起来像是在战争和运行run-app时都可以运行的黑客。不确定应该如何“应该”完成(如果这有意义的话)。