請注意:看來我可能在這裏使用*.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