【发布时间】:2014-08-28 11:41:08
【问题描述】:
请注意:似乎我在这里使用*.groovy 文件可能会使事情复杂化,因为它需要在运行时正确编译和连接。 我现在对基于 *.properties 的解决方案更感兴趣!
我想将Custom.groovy(或最坏情况下,custom.properties)文件添加到我的 Grails (2.3.6) 应用程序的 conf 目录,然后配置 Config.groovy 以读取该文件和任何属性存放在里面。
所以:
mygrailsapp/
grails-app/
conf/
BuildConfig.groovy
Config.groovy
<other stuff>
Custom.groovy or custom.properties
Custom.groovy/custom.properties 可能看起来像:
fizz = "buzz"
然后,在Config.groovy:
grails.config.locations = [
"classpath:${appName}-config.properties",
"classpath:${appName}-config.groovy",
"file:${userHome}/.grails/${appName}-config.properties",
"file:${userHome}/.grails/${appName}-config.groovy",
Custom
]
println "The value of fizz is ${fizz}."
如果它工作正常,那么当我运行grails run-app 时,我会看到如下输出:
嘶嘶声的价值是嗡嗡声。
相反,我看到了:
fizz 的值为 [:]。
这里发生了什么,我需要做些什么来解决这个问题?最终,Custom.groovy 或 custom.properties 文件可以位于 任何地方 Grails 应用程序(必须 成为conf 目录,尽管这是我的偏好)。唯一重要的是我可以在Config.groovy 之外定义变量,并在Grails 进行构建/运行/测试/等时在Config.groovy 中访问它们。应用程序。
【问题讨论】:
-
你能不能试着把你的文件的完整路径放到位置中……比如“file:customConfig.groovy”
-
谢谢@LalitAgarwal (+1) - 我可以试一试,但在此之前,我只是想确保我理解你的问题。您是在问我是否可以提供 绝对文件路径 而不是
classpathURI?如果是这样,我倾向于说“no”,因为 Grails 应用程序可能在机器内的任何地方运行(etc/apps/mygrailsapps、/home/myuser/foo/bar/mygrailsapp等。 )。
标签: grails groovy configuration classpath