在SBT上为每个任务加载不同的配置文件

时间:2016-07-15 02:50:48

标签: scala sbt

我正在尝试在sbt中为每个任务加载不同的配置文件,例如我希望能够运行如下任务:

sbt devRun

并在运行时加载src/main/resources/application.dev.conf

sbt run

将加载src/main/resources/application.conf

据我了解,我们可以在运行test application.conf时加载不同的src/test/resource/application.conf,但是对于不同的任务(或范围)使用不同的配置文件需要在SBT上使用一些代码。< / p>

我一直在尝试谷歌,通常建议是在运行任务中使用它:

$ sbt run -Dconfig.resources="application.dev.conf"

但据我所知,上面只会在运行时加载不同的配置。我有多个配置文件的项目。我想根据范围/任务动态加载它们。最好的方法是什么?

先谢谢。

1 个答案:

答案 0 :(得分:0)

您可以(必须)使用javaOptions设置。它表示sbt运行分叉JVM时的Java选项,例如:它在不同的JVM进程中运行测试(默认情况下)。

javaOptions in Test += "-Dconfig.resource=" + System.getProperty("config.resource", "application.test.conf")

而不是Test插入您拥有的任何配置。如果您未明确传递config.resource参数,则会使用application.test.conf