我正在构建一个使用类型安全激活器的Scala Play 2.4应用程序。
我希望每次运行时使用不同的配置文件运行我的测试2次。
如何指定备用配置文件,或覆盖配置设置?
我目前使用命令" ./ activator test"
运行测试答案 0 :(得分:8)
您可以为不同的环境/目的创建不同的配置文件。例如,我有三个用于本地测试,alpha部署和生产部署的配置文件,如此项目https://github.com/luongbalinh/play-mongo
您可以按如下方式指定运行配置:
激活器运行-Dconfig.resource = application.conf
其中application.conf是您要使用的配置。
答案 1 :(得分:2)
您可以为不同的环境创建不同的配置文件。要指定将其与激活器运行一起使用的配置,请使用以下命令:
activator "run -Dconfig.resource=application.conf"
其中application.conf是所需的配置。没有引号它对我不起作用。这与使用进入生产模式时使用的配置参数相同,如下所述: https://www.playframework.com/documentation/2.5.x/ProductionConfiguration#Specifying-an-alternate-configuration-file
重要的是要知道config.resource尝试在conf /文件夹中找到配置,因此也不需要指定它。对于不在资源之间的完整路径,请使用config.file。进一步阅读也在上述链接中。
需要使用引号,因为您不希望将-D发送到激活器,而是发送到run命令。使用引号,激活器的JVM获得没有-D参数但它解释"运行-Dconfig.file = application.conf"并相应地设置config.file属性,也在激活器的JVM中。
答案 2 :(得分:0)
以下命令适用于Play 2.5
$ activator -Dconfig.resource=jenkins.conf run
https://www.playframework.com/documentation/2.5.x/ProductionConfiguration
答案 3 :(得分:0)
由于以上所有部分内容都不正确,这是我上周末的难以掌握的知识。
include "application.conf"
不 include "application"
(Akka会这样做).conf
,否则Play将以静默方式丢弃它们-Dconfig.file=<file>.conf
,因此您不依赖于类路径/opt/configs/prod.conf
)示例强>
以下是我们运行的示例:
#prod.conf
include "application"
akka.remote.hostname = "prod.blah.com"
# Example of passing in S3 keys
s3.awsAccessKeyId="YOUR_KEY"
s3.awsSecretAccessKey="YOUR_SECRET_KEY"
然后像这样传递它:
activator -Dconfig.file=/var/lib/jenkins/jenkins.conf test
如果您喜欢SBT:
sbt -Dconfig.file=/var/lib/jenkins/jenkins.conf test
开发环境
另请注意,也可以轻松制作developer.conf
文件,保留所有密码/本地端口,然后设置.gitignore
以便开发人员不要意外检查它们。