2016-01-19 86 views
0

Playframework:2.4.4 斯卡拉:2.11 的Java:OpenJDK的版本 “1.8.0_66”Playframework 2.4.x的配置文件包括

我想包括为了使环境中的特定配置的配置文件。

developer.conf:

include "application.conf" 

db.default.driver="org.postgresql.Driver" 
db.default.url="jdbc:postgresql://localhost/mobile_server" 
db.default.username="mobile_user" 
db.default.password="password" 

liquibase: { 
    driver = "org.postgresql.Driver" 
    url  = "jdbc:postgresql://localhost/mobile_server" 
    user  = "mobile_user" 
    password = "password" 
} 

的问题是,它好像要附带的“application.conf”文件之后,解析器不会返回解析“主”文件的其余部分。因此,数据库属性从未设置。

有没有其他人经历过这个?

回答

0

您必须明确告诉激活者使用您的developer.conf文件。开始激活这样的:

activator -Dconfig.file=conf/developer.conf 

什么,你可能遇到不在于它“只读取包括声明”,但这只是激活您加载默认的配置文件,这是application.conf,除非另有说明。

+0

我正在做-Dconfig.resource = developer.conf,我可以告诉它选择它,因为如果我将所有内容都堆放到application.conf中并使用-Dconfig.resource = developer.conf运行,它将运行得很好。所以它确实看到了开发人员文件并处理了它似乎包含的内容。 这个错字是我在帖子中的粗略指法,它在文件中是正确的。我会解决最初的问题,谢谢。 – hellified

+0

我不确定你说的是什么,证明developer.conf已被提取。如果你把所有东西都放到application.conf中,并且它默认加载了application.conf,那么在我看来,它很明显是有效的。顺便说一句。你似乎使用'-Dconfig.resource',而不是'-Dconfig.file'。 –

+0

一个真实的证明是将application.conf留空,将所有内容放入developer.conf中,然后使用'activator -Dconfig.file = conf/developer.conf'运行它 –

1

所以看来我的问题是在测试时分叉,以加快测试时间。当你这样做时,它会丢掉你的“-D”选项。为了让他们,你需要做这样的事情在你的build.sbt文件:

javaOptions在测试+ =“-Dconfig.resource = developer.conf”

其在SBT文档中描述了下“分叉的JVM选项”:

http://www.scala-sbt.org/0.13.5/docs/Detailed-Topics/Forking.html

它本质上指示SBT传递所需的选项以及所有分叉JVM进程。