2016-01-19 120 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進程。