【问题标题】:local conf play framework本地 conf 播放框架
【发布时间】:2019-01-08 23:54:43
【问题描述】:

我有 application.conf

{
 name {
   postgres {
      host = ""
      username = ""
      password = ""
            }
     }
}

我想添加我的 local.conf

{
 name {
   postgres {
      host = "blabla"
      username = "aa"
      password = "bb"
            }
     }
}

name.postgres.host.override = "" - 不起作用

【问题讨论】:

  • 如何在运行时加载local.conf?像这样? $ /path/to/bin/<project-name> -Dconfig.resource=local.conf
  • @Nio 我只是把它放到 app/conf/local.conf 中。我需要在我的项目树中包含我的 local.conf
  • 嗨,阅读文档 - playframework.com/documentation/2.6.x/… Play 不会只加载任何 xxx.conf,它只会加载 - 按照惯例 - application.conf。您可以指定自定义 conf 文件,但您需要告诉 Play 它需要在运行时加载什么。查看这些资源 - playframework.com/documentation/2.6.x/…、stackoverflow.com/questions/40998441/…
  • 为什么不能使用conf目录?
  • @Nio 我通过使用自定义设置阅读器找到答案。不能直接使用conf,因为我的应用程序conf在git上,而我的本地只是本地)

标签: scala playframework


【解决方案1】:

您可以像这样在另一个 conf 文件中包含一个 conf 文件:

Screen

这将自动覆盖变量。

【讨论】:

    【解决方案2】:

    在您的application.conf 中,它将保持不变:

    {
     name {
       postgres {
          host = ""
          username = ""
          password = ""
                }
         }
    }
    

    在您的local.conf 中,您应该像这样包含application.conf:

    include "application.conf"
    
    {
     name {
       postgres {
          host = "blabla"
          username = "aa"
          password = "bb"
                }
         }
    }
    

    在运行 sbt 时,您应该特别提到要像这样加载 local.conf(否则默认情况下会加载 application.conf):

    sbt run -Dconfig.resource=local.conf
    

    这样,local.conf 将从 application.conf 扩展。如果两个文件中都存在任何键,则将选择来自local.conf 的值。

    现在,你会得到:

    name.postgres.host=blabla
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-04
      • 2014-05-04
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-30
      • 2013-02-20
      相关资源
      最近更新 更多