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

时间:2015-02-11 05:32:36

标签: playframework sbt config

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

  • 在开发过程中,我运行sbt run,应用程序按预期使用application.conf
  • 在制作中我想使用sbt start并指定配置文件production.conf,它与dev配置文件(<project root>/conf/

按照official docs page上“指定备用配置文件”标题下的说明进行操作,如下所示:

$ 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

有没有其他人想出如何正确地做到这一点?

1 个答案:

答案 0 :(得分:27)

经过几个小时的浪费,我明白了。使用如下引号正确传递参数:

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

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

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