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

Posted

技术标签:

【中文标题】将 grails 应用程序配置外部化到 tomcat conf 目录【英文标题】:Externalize grails application configuration to tomcat conf directory 【发布时间】:2014-07-23 17:10:15 【问题描述】:

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

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

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

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

在其他非 grails 应用程序中,我曾经通过将配置位置指定为 $CATALINA_HOME/conf 来实现这一点。

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

【问题讨论】:

你试过了吗:grails.config.locations = ["file:$System.env.CATALINA_HOME/conf/myconfig.properties"] 【参考方案1】:

在 Tomcat 中运行应用程序时,catalina.homecatalina.base 在 Java 系统属性中可用。

因此您可以在您的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"

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

【讨论】:

你应该再试一次。我在之前的回答中添加了一个示例。 +2,效果很好。谢谢:)

以上是关于将 grails 应用程序配置外部化到 tomcat conf 目录的主要内容,如果未能解决你的问题,请参考以下文章

如何从 grails 3.1.8 中的外部文件加载数据源配置?

如何从grails 3.1.8中的外部文件加载数据源配置?

数据源的 Spring Boot 外部化配置不起作用

如何在 Grails 3 中使用外部 .groovy 配置文件

在共享一个通用插件的两个 grails 应用程序之间共享配置

如何在 Grails 2.4 中外部化 Maven 凭证