Playframework设置取决于环境

zap*_*dlo 10 scala configuration-files playframework playframework-2.1

我正在使用playframework 2.1-RC2.首先,我已经看到了所有 类似的 问题,所以我按照每个环境分离application.conf文件的通用指令.所以我有application.test.conf并且我以这种方式运行测试:

play -Dconfig.file=./conf/application.test.conf "test"
Run Code Online (Sandbox Code Playgroud)

我试过不同的组合,比如

play -Dconfig.file=./conf/application.test.conf ~test
Run Code Online (Sandbox Code Playgroud)

要么

play -Dconfig.file=conf/application.test.conf ~test
Run Code Online (Sandbox Code Playgroud)

仍然没有运气,它只是没有被选中,默认的一个(application.conf).

从另一方面来说,如果我这样做

play -Dconfig.file=./conf/application.dev.conf "run"
Run Code Online (Sandbox Code Playgroud)

然后应用程序选择正确的配置.

那么如何指定测试配置文件呢?

Leo*_*Leo 13

我发现以跨平台兼容的方式指定它的最强大的方法是将它直接包含在Build.scala中:

val main = play.Project(appName, appVersion, appDependencies).settings(
    javaOptions in Test += "-Dconfig.file=conf/test.conf",
    ...
)
Run Code Online (Sandbox Code Playgroud)

奖金:配置一次忘记;-)

  • 这是一个有趣的方法,但关键字"测试"来自哪里?是否有可能与dev/preprod/prod等环境做同样的事情?谢谢 (2认同)