无法覆盖2.6.6 scala中的application.conf

时间:2018-05-12 20:38:57

标签: scala playframework sbt

我希望在生产和开发环境中使用不同的application.conflogback.xml

我找到了一些方法并尝试过。但他们都没有为我工作:

  1. Sbt run command
  2. PlayKeys.devSettings
  3. 运行中的JavaOption
  4. 请帮助我理解我犯的错误。

    我尝试了以下内容

    PlayKeys.devSettings := Seq("""play.server.http.port""" -> "8080","""-Dlogger.file""" -> "C:/Playworkspaces/conf/dev-logback.xml","""-Dconfig.file""" -> "C:/Playworkspaces/conf/devApplication.conf")
    
    PlayKeys.devSettings := Seq("play.server.http.port" -> "8080","-Dlogger.file" -> "conf/dev-logback.xml","-Dconfig.file" -> "conf/devApplication.conf")
    
    sbt run -Dlogger.file->C:/Playworkspaces/conf/dev-logback.xml
    

    所有事情都尝试使用和不使用(conf / devApplication.conf,devApplication.conf)完整路径。

    感谢enter image description here

2 个答案:

答案 0 :(得分:1)

使用-D时,不要写"config.file" -> "C:/Playworkspaces/conf/devApplication.conf" 前缀,例如,它应该是

"-Dconfig.file" -> "C:/Playworkspaces/conf/devApplication.conf"

而不是

app/conf/devApplication.conf

另外,我可以看到你在文件系统而不是类路径中放置了DEV配置。如果DEV配置不包含任何机密,我的建议是将它放在config.resource下的类路径上并通过PlayKeys.devSettings := Seq("config.resource" -> "devApplication.conf") 提供:

load()

答案 1 :(得分:0)

sbt run -Dlogger.file->C:/Playworkspaces/conf/dev-logback.xml

中存在一个小异常

应为=

正如Mario所解释的那样,将额外的配置文件放在conf目录(classpath)中。

尝试:

sbt run -Dlogger.resource=dev-logback.xml -Dconfig.resource=devApplication.conf

其他信息: