带有外部配置文件的grails war tomcat

带有外部配置文件的grails war tomcat,tomcat,grails,tomcat7,war,Tomcat,Grails,Tomcat7,War,我想添加外部配置数据。因此,我在主Config.groovy文件中添加了以下行 我导出了环境变量 DASH_CONFIG=<path_to_external_configfile>/extConfig.properties DASH_CONFIG=<path_to_external_configfile>/extConfig.properties. Config.groovy if(System.getenv('DASH_CONFIG')) { println

我想添加外部配置数据。因此,我在主Config.groovy文件中添加了以下行

我导出了环境变量

DASH_CONFIG=<path_to_external_configfile>/extConfig.properties
DASH_CONFIG=<path_to_external_configfile>/extConfig.properties.
Config.groovy

if(System.getenv('DASH_CONFIG')) {
    println( "Including configuration file: " + System.getenv('DASH_CONFIG'));
    grails.config.locations = [ 
        "classpath:exthConfig.properties",
        "file:./extConfig.properties",
        "file:${System.getenv('DASH_CONFIG')}"]
} else {
    println "No external configuration file defined."
}
Bootstrap.groovy

我正在初始化Boostrap.groovy中的一些配置参数。比如说

import org.codehaus.groovy.grails.commons.ConfigurationHolder


new AdminSettings(
    refreshInterval:"${ConfigurationHolder.config.simpleBSMDash.default.refreshInterval}", serverName:"${ConfigurationHolder.config.simpleBSMDash.default.serverName}").save(failOnError:true)
当通过grails-Denv=DEV-run-app在本地运行应用程序时。一切正常,intance AdminSettings已创建并使用预期值初始化

当我在我的tomcat服务器上部署war文件时,不会显示intance AdminSettings。但我确实导出了环境变量

DASH_CONFIG=<path_to_external_configfile>/extConfig.properties
DASH_CONFIG=<path_to_external_configfile>/extConfig.properties.
我将extConfig.properties文件放在$TOMCAT_HOME/lib文件夹中,它也不起作用

我将其重命名为extConfig.groovy,它也没有帮助

我在stackflow中搜索,但没有找到正确答案


有人有想法吗?

以下是对我们有效的方法:

在conf/Config.groovy中:

grails.config.locations = [ 
  "classpath:${appName}.properties", 
  "file:${userHome}/.grails/${appName}-config.properties"
  ]

它在Windows中工作,尽管Groovy/Windows认为是home~的地方可能有点令人惊讶。您尝试从Config.groovy访问环境变量看起来有点冒险…

或者尝试以下操作:感谢@CharlesW的回复,但我已经测试了您的选项,但它不起作用。。。