在您的grails-app/conf/
目錄中創建DirectoryConfig.groovy
不會按慣例工作。
您應該考慮實施建議用於外化Grails配置的解決方案 - 從類路徑或文件系統提供.groovy
或.properties
文件。看看註釋代碼在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"]
它提供的是依賴於運行時的屬性配置文件很常見的方式:
// if (System.properties["${appName}.config.location"]) {
// grails.config.locations << "file:" + System.properties["${appName}.config.location"]
// }
我經常使用這樣的事情(在Config.groovy
文件的它的一部分):
grails.config.locations = []
grails.project.config.type = "classpath"
grails.project.config.extension = "groovy"
environments {
development {
grails.project.config.file = "development-config.${grails.project.config.extension}"
}
test {
grails.project.config.file = "test-config.${grails.project.config.extension}"
}
}
if (System.properties["grails.config.type"]) {
grails.project.config.type = System.properties["grails.config.type"]
}
if (System.properties["grails.config.file"]) {
grails.project.config.file = System.properties["grails.config.file"]
}
grails.config.locations << "${grails.project.config.type}:${grails.project.config.file}"
默認情況下,它假定有例如development-config.groovy文件放在類路徑中,但我可以通過在Java運行時設置-Dgrails.config.file=/etc/development.properties -Dgrails.config.type=file
來更改它,所以它使用/etc/development.properties
文件而不是默認文件。
如果你想運行在最簡單的方法你的榜樣,你將不得不做的事:
1)把你的DirectoryConfig.groovy
在classpath源例如src/java
(注意:如果你把你的文件src/groovy
它不會工作)
2)定義你的Config.groovy
:
grails.config.locations = [
"classpath:DirectoryConfig.groovy"
]
3)重新運行應用程序。 grailsApplication.config.directory.logDirectory
現在應該返回您所期望的值。
有關外部化的配置去http://grails.org/doc/latest/guide/conf.html#configExternalized
無關你的問題的詳細信息 - 你應該使用/,而不是\\甚至與Windows; JDK類根據需要進行轉換。只有在寫入一個文件時纔會使用\\,該文件將由非Java應用程序在Windows中讀取 – 2014-11-02 00:42:12