如何在 Play 应用程序中使用 sbt start 指定配置文件?

How to specify config file with sbt start in Play application?

我有一个我认为是开发和部署 Play 2.3.6 应用程序的常见用例:

按照 official docs page "Specifying alternative configuration file" 标题下的说明进行操作,例如:

$ sbt start -Dconfig.file=/full/path/to/project/conf/production.conf

应用程序启动时没有错误,但我可以检查 Web 应用程序并看到它正在加载我的 application.conf 开发值,而不是我在 production.conf 中找到的生产值。

我也尝试了建议的方法:

$ sbt start -Dconfig.resource=production.conf

并且服务器无法启动并出现错误:

[error] com.typesafe.config.ConfigException$IO: production.conf: java.io.IOException: resource not found on classpath: production.conf

还有其他人知道如何正确执行此操作吗?

在浪费了几个小时之后,我想通了。如下使用引号正确传递参数:

$ sbt "start -Dconfig.resource=production.conf"

此外,如果您需要指定端口号,请确保它出现在配置选项之后,否则它将被忽略:

$ sbt "start -Dconfig.resource=production.conf 9001"