【问题标题】:Overriding Grails config for plugins覆盖插件的 Grails 配置
【发布时间】:2018-05-01 18:44:25
【问题描述】:

我试图弄清楚如何将特定于部署的配置与我的 Grails 3 应用程序分开。在 Grails 2 中,我可以设置一个配置位置查找,它会加载我的开发特定配置文件。在 Grails 3 中,我发现我可以在运行应用程序时提供额外的 spring 配置,即:

./grailsw -Dspring.config.location=classpath:application.yml,file:///home/nigel/src/app/dev.yml run-app

但是,如果我使用如下插件,这将不起作用,它只会使用 grails-app/conf/application.yml 中的配置:

./grailsw -Dspring.config.location=classpath:application.yml,file:///home/nigel/src/app/dev.yml url-mappings-report

所以我的问题是,我如何向 grails 提供特定于部署/开发的配置文件,以便它与 grails 插件一起使用。

【问题讨论】:

    标签: grails configuration grails3


    【解决方案1】:

    对于 grails 3,您可以使用 external config 插件。并配置配置位置。

    grails.config.locations = ["classpath:myconfig.groovy"]
    

    【讨论】:

    • 谢谢,如果我在 application.yml 文件中设置 grails.config.locations 参数,而不是将其作为 JVM 参数传递,这将是最灵活的方法,我可以获得这种工作.所以,这给我留下了一个问题,我应该使用什么变量替换来指向项目主目录?我试过 ${project.home} 和 ${grails.home} 但都没有工作。在紧要关头,我可以按照建议使用类路径,但在类路径上有“外部”配置似乎违反直觉。
    • 运行war时,没有项目主目录,你不应该使用项目主目录,而是使用类路径中的文件,或者在用户主目录中,或者在catalina基目录中的某个地方等等这是支持的,阅读插件的文档
    【解决方案2】:

    尝试为此任务使用 Grails 3 external config 插件。

    此插件模仿 Grails 2 处理在 grails.config.locations 中定义的外部配置的方式

    步骤:

    1. 添加对build.gradle的依赖。

    2. 创建一个新的本地配置 Groovy 脚本并添加您要覆盖的配置。

    3. application.ymlapplication.groovy 中添加外部配置属性,并在其中提供本地配置文件的路径。

    就是这样。

    【讨论】:

      猜你喜欢
      • 2012-09-20
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 2011-10-31
      • 2013-03-20
      • 2014-09-07
      • 1970-01-01
      • 2011-05-30
      相关资源
      最近更新 更多