如何使用play 2.4和activator指定配置文件

时间:2015-07-29 15:55:10

标签: scala playframework configuration typesafe-activator playframework-2.4

我正在构建一个使用类型安全激活器的Scala Play 2.4应用程序。

我希望每次运行时使用不同的配置文件运行我的测试2次。

如何指定备用配置文件,或覆盖配置设置?

我目前使用命令" ./ activator test"

运行测试

4 个答案:

答案 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中。

这已经在这里讨论过:Activator : Play Framework 2.3.x : run vs. start

答案 2 :(得分:0)

以下命令适用于Play 2.5

 $ activator -Dconfig.resource=jenkins.conf run

https://www.playframework.com/documentation/2.5.x/ProductionConfiguration

答案 3 :(得分:0)

由于以上所有部分内容都不正确,这是我上周末的难以掌握的知识。

  1. 使用include "application.conf" include "application"(Akka会这样做)
  2. 必须将配置命名为.conf,否则Play将以静默方式丢弃它们
  3. 您可能需要-Dconfig.file=<file>.conf,因此您不依赖于类路径
  4. 确保您提供完整的文件路径(例如/opt/configs/prod.conf
  5. 示例

    以下是我们运行的示例:

    #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以便开发人员不要意外检查它们。