请注意:看来我可能在这里使用*.groovy
文件使事情变得复杂,因为它需要在运行时正确编译和接线。 基于*.properties
的解决方案,我现在更有趣!Grails从类路径中的文件读取属性?
我想补充一个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
,我会看到输出像:
嘶嘶声的价值是嗡嗡声。
相反,我看到:
香味的值是[:]。
这是怎么回事,我需要做些什么来解决这个问题?最终,Custom.groovy
或custom.properties
文件可以位于Grails的应用程序内的任何地方(不有是conf
目录,虽然这将是我的偏好)。唯一重要的是我可以在Config.groovy
之外定义变量,并在Grails进入build/run/test/etc时在Config.groovy
之内访问它们。应用程序。
你可以尝试给你的文件的完整路径到位置..像 “文件:customConfig.groovy” – 2014-08-28 11:43:40
谢谢@LalitAgarwal(+1) - 我可以试一试,但在我做之前,我只想确保我理解你的问题。你问我是否可以给**绝对文件路径**而不是'classpath' URI?如果是这样,我会倾向于说“* no *”,因为Grails应用程序可能从机器内的任何位置运行('etc/apps/mygrailsapps','/ home/myuser/foo/bar/mygrailsapp'等)。 – DirtyMikeAndTheBoys 2014-08-28 11:47:35