play2 有选择地覆盖 application.conf 中运行任务的设置
Posted
技术标签:
【中文标题】play2 有选择地覆盖 application.conf 中运行任务的设置【英文标题】:play2 selectively override settings in application.conf for the run task 【发布时间】:2014-04-14 09:42:38 【问题描述】:在生产 Play 项目中,您可以通过将另一个 application.conf
添加到类路径来选择性地覆盖设置。但是,这似乎不适用于开发运行任务。这将很有用,因此不同的开发人员可以在不影响版本化文件的情况下测试/使用不同的设置。
在使用 typesefe-config 的非 Play scala 项目中,您可以通过在 sbt 配置中添加额外的 application.conf 来做到这一点:
unmanagedClasspath in Runtime ++= sys.env.get("CUSTOM_CONFIG").map(ec=>Attributed.blank(file(ec))).toSeq
这样每个开发人员都可以拥有自己的覆盖。然而,根据sbt inspect
,Play run 任务似乎并不尊重这一点,这取决于runtime:unamanagedClasspath
设置。
您当然可以完全替换 application.conf
,但不能只覆盖几个条目。
有人知道怎么做吗?
【问题讨论】:
【参考方案1】:创建一个新的配置文件:/my/local.conf
在该文件中:
include "application.conf"
my.custom.setting="hello"
第一行引用了类路径中的 application.conf。随后的行添加/覆盖设置。
你开始吧:
sbt -Dconfig.file=/my/local.conf ~run
【讨论】:
好的。这应该这样做。运行不尊重类路径仍然很奇怪。以上是关于play2 有选择地覆盖 application.conf 中运行任务的设置的主要内容,如果未能解决你的问题,请参考以下文章
play2.0 + java + mysql5.0 错误太多
启动没有 DB 的 Java/Play2.5 REST API
play 2.6.3 在运行时从 application.conf 检测数据库,但在测试期间不检测