将grails应用程序配置外部化到tomcat conf目录

时间:2014-06-03 11:24:06

标签: tomcat grails

我正在尝试外部化grails应用程序的配置。

我已成功外部化,配置文件位于用户主目录中,如下所示。

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

但是,我需要外化,以便配置文件需要在tomcat/conf目录中。

在其他非grails应用程序中,我曾经通过将配置位置指定为${CATALINA_HOME}/conf来实现此目的。

如何将配置外部化为grails中的tomcat/conf目录?

1 个答案:

答案 0 :(得分:2)

在Tomcat中运行应用程序时,Java系统属性中提供了catalina.homecatalina.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"
}

这只是一个例子,但它确实有效。