对于我的Play 2.2 / Scala应用程序(使用SBT构建),我想根据不同部署目标的环境配置不同的配置文件(conf / application.conf)?希望可以从基础版本生成变体?
我以前从.NET习惯的是拥有一个基本配置文件(Web.config),它根据正在部署的配置文件(例如Production)进行某种转换 . 是否在Play / Scala世界中使用类似的技术?
Alternative configuration files在Play的文档中非常清楚 Specifying alternative configuration file .
Specifying alternative configuration file
简而言之 - 在 application.conf 中,您可以放置应用程序的默认配置,此外,您还需要为您的环境创建其他文件,即 . life.conf , dev.conf 等 . 在这些文件中,您首先需要包含 application.conf (将读取整个默认配置),接下来只需覆盖必须更改的 only 部分 - 即 . 数据库凭据,可能是 dev.conf :
application.conf
life.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 之后)
dist
./start -Dconfig.resource=dev.conf
或者使用Play控制台
play -Dconfig.resource=dev.conf run
几个提示:
最好将你的'life'数据库凭据放在默认的 application.conf 文件中,如果某个开发人员忘记包含他的 dev.conf 他不会损坏 生产环境 数据库,而应该把它放在 prod.conf 中 .
prod.conf
此外,这些额外的配置不应该知道生命数据库凭据不会看到它 .
也可以使用远程备用配置文件,这可能很有用,即 . 当您部署同一个应用程序的多个实例时,即 . 在 Cloud 中的几个主机上 .
每个开发人员都有自己的配置文件,即 dev_aknuds1.conf , dev_biesior.conf 等,因此您可以在repo中使用一种模式 dev_*.conf 忽略它们 .
dev_aknuds1.conf
dev_biesior.conf
dev_*.conf
最后你可以创建一个shell脚本(unix)或bat文件(Windows)来开始使用选择的配置文件,如 start_dev.sh , run_dev.sh 等,这样你就不需要每次都写 -Dconfig.resource=...
start_dev.sh
run_dev.sh
-Dconfig.resource=...
1 回答
Alternative configuration files在Play的文档中非常清楚
Specifying alternative configuration file
.简而言之 - 在
application.conf
中,您可以放置应用程序的默认配置,此外,您还需要为您的环境创建其他文件,即 .life.conf
,dev.conf
等 . 在这些文件中,您首先需要包含application.conf
(将读取整个默认配置),接下来只需覆盖必须更改的 only 部分 - 即 . 数据库凭据,可能是dev.conf
:所以最后你开始申请(在
dist
之后)或者使用Play控制台
几个提示:
最好将你的'life'数据库凭据放在默认的
application.conf
文件中,如果某个开发人员忘记包含他的dev.conf
他不会损坏 生产环境 数据库,而应该把它放在prod.conf
中 .此外,这些额外的配置不应该知道生命数据库凭据不会看到它 .
也可以使用远程备用配置文件,这可能很有用,即 . 当您部署同一个应用程序的多个实例时,即 . 在 Cloud 中的几个主机上 .
每个开发人员都有自己的配置文件,即
dev_aknuds1.conf
,dev_biesior.conf
等,因此您可以在repo中使用一种模式dev_*.conf
忽略它们 .最后你可以创建一个shell脚本(unix)或bat文件(Windows)来开始使用选择的配置文件,如
start_dev.sh
,run_dev.sh
等,这样你就不需要每次都写-Dconfig.resource=...