我的 Play 2.2/Scala 应用程序(使用 SBT 构建),我想根据我部署到的环境部署不同的配置文件(例如,将部署与特定数据库服务器耦合)。如何为不同的部署目标创建应用程序配置文件 (conf/application.conf) 的不同变体?希望可以从基础版本生成变体?
我从 .NET 习惯使用的是有一个基本配置文件 (Web.config),它会根据正在部署的配置文件(例如生产)进行某种转换。在 Play/Scala 世界中是否使用了类似的技术?
请您参考如下方法:
Alternative configuration files Play 的文档在 Specifying alternative configuration file 部分中得到了很好的介绍。 .
总之——在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等等,所以你可以用一种模式忽略它们 dev_*.conf在 repo 。 start_dev.sh , run_dev.sh等等,所以你不需要写 -Dconfig.resource=...每次



