play2有选择地覆盖application.conf中的运行任务设置

时间:2014-04-14 09:42:38

标签: scala playframework typesafe-config

在生产Play项目中,您可以通过向类路径添加另一个application.conf来有选择地覆盖设置。但是,这似乎不适用于开发运行任务。这将非常有用,因此不同的开发人员可以在不影响版本化文件的情况下测试/使用不同的设置。

在使用typesefe-config的非Play scala项目中,您可以通过在sbt config中添加额外的application.conf来实现此目的:

unmanagedClasspath in Runtime ++= sys.env.get("CUSTOM_CONFIG").map(ec=>Attributed.blank(file(ec))).toSeq

这样每个开发人员都可以拥有自己的覆盖。然而,根据sbt inspect,Play运行任务似乎并不尊重这一点,这取决于runtime:unamanagedClasspath设置。

您当然可以提供application.conf的完整替代,但不能覆盖几个条目。

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:3)

创建一个新的配置文件:/my/local.conf

在该档案中:

include "application.conf"

my.custom.setting="hello"

第一行引用了类路径中的application.conf。后续行添加/覆盖设置。

你开始吧:

sbt -Dconfig.file=/my/local.conf ~run