我已经设置了这样的环境变量:
APP_HOME = "c:\app\app-datasource.properties
在config.groovy我做
def ENV_NAME = "APP_HOME"
if(!grails.config.location || !(grails.config.location instanceof List)) {
grails.config.location = []
}
if(System.getenv(ENV_NAME)) {
println "Including configuration file specified in environment: " + System.getenv(ENV_NAME);
grails.config.location << "file:" + System.getenv(ENV_NAME)
} else if(System.getProperty(ENV_NAME)) {
println "Including configuration file specified on command line: " + System.getProperty(ENV_NAME);
grails.config.location << "file:" + System.getProperty(ENV_NAME)
} else {
println "No external configuration file defined."
}
我是通过在线发布的,我想知道我们是否需要使用grails.config.location
或grails.config.locations
?
而不是直接将APP_HOME
设置为属性文件,我可以将其设置为目录路径(e.g.: c:\apps)
然后我可以在该目录中放置多个属性文件,然后如果我多次执行以下操作它会起作用吗?:
grails.config.locations << "file:" + System.getProperty(ENV_NAME)+ "\app-datasource.properties"
grails.config.locations << "file:" + System.getProperty(ENV_NAME)+ "\app-reporting.properties"
and so on...
提前致谢
答案 0 :(得分:1)
您需要修改grails.config.locations
(复数)。我的(非常有限的)经验表明,在Config.groovy
完成之后,可能不会加载外部文件。
您可能需要考虑在类路径中查找其他配置文件;然后你可以把你的额外的东西放在Grails项目之外(例如,在你的web服务器的库中)或grails-app/conf
目录中。我已经写了关于如何执行此操作的说明here。
以下是有关如何从插件执行此操作的帖子:https://stackoverflow.com/a/9789506/1269312