我认为这是开发和部署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
有没有其他人想出如何正确地做到这一点?
答案 0 :(得分:27)
经过几个小时的浪费,我明白了。使用如下引号正确传递参数:
$ sbt "start -Dconfig.resource=production.conf"
此外,如果您需要指定端口号,请确保在配置选项之后 ,否则将忽略该端口号
$ sbt "start -Dconfig.resource=production.conf 9001"