我正在尝试外部化grails应用程序的配置。
我已成功外部化,配置文件位于用户主目录中,如下所示。
grails.config.locations = ["file:${userHome}/.conf/${appName}-config.properties"]
但是,我需要外化,以便配置文件需要在tomcat/conf
目录中。
在其他非grails应用程序中,我曾经通过将配置位置指定为${CATALINA_HOME}/conf
来实现此目的。
如何将配置外部化为grails中的tomcat/conf
目录?
答案 0 :(得分:2)
在Tomcat中运行应用程序时,Java系统属性中提供了catalina.home
和catalina.base
。
因此,您可以在Config.groovy
文件中使用它们来添加grails.config.locations
的新路径:
grails.config.locations = []
def tomcatConfDir = new File("${System.properties['catalina.home']}/conf")
if (tomcatConfDir.isDirectory()) {
grails.config.locations << "file:${tomcatConfDir.canonicalPath}/${appName}-config.groovy"
}
这只是一个例子,但它确实有效。