对于我的Play 2.2 / Scala应用程序(使用SBT构建),我想根据我正在部署的环境部署不同的配置文件(例如,将部署与特定数据库服务器耦合)。如何为不同的部署目标创建应用程序配置文件(conf / application.conf)的不同变体?希望可以从基础版本生成变体吗?
我从.NET习惯的是拥有一个基本配置文件(Web.config),它根据正在部署的配置文件(例如Production)进行某种转换。是否在Play / Scala世界中使用了类似的技术?
答案 0 :(得分:16)
Specifying alternative configuration file
部分中,Alternative configuration files在Play的文档中有很好的介绍。
简而言之 - 在application.conf
中,您可以放置应用的默认配置,此外,您还需要为您的环境创建其他文件,即。 life.conf
,dev.conf
等。在这些文件中,您首先需要包含application.conf
(将读取整个默认配置),然后只需覆盖仅部分被改变 - 即。数据库凭据,可以是dev.conf
:
include "application.conf"
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:alternative-database-for-dev-testing"
db.default.user=developer
db.default.password="developerpass"
所以最后你开始申请(dist
之后)作为
./start -Dconfig.resource=dev.conf
或使用Play控制台
play -Dconfig.resource=dev.conf run
一些提示:
application.conf
文件中,如果某个开发人员忘记包含他的dev.conf
他不会损坏生产数据库,而不是你应该把它放在prod.conf
。dev_aknuds1.conf
,dev_biesior.conf
等,因此您可以在repo中使用一种模式dev_*.conf
忽略它们。start_dev.sh
,run_dev.sh
等,这样您就不需要编写{{ 1}}每次