2
我有一個SBT項目,其中包含一個與akka演員合作的子項目(這是一個庫)。SBT子項目中的Akka應用程序特定設置
就像在akka docs,我試圖從子項目的reference.conf
加載應用程序特定配置。
在一個簡單的SBT項目中,不包含包含子項目,這是有效的。 那麼爲什麼不是子項目呢?
如何我加載配置:
val config = ConfigFactory.load()
implicit val system:ActorSystem = ActorSystem("MyLibSystem", config.getConfig("library-project-conf").withFallback(config))
我reference.conf
library-project-conf {
akka {
loglevel = DEBUG
# some more stuff
}
}
如果我把akka
confuguraton的library-project-conf
之外阿卡配置設置讀。
我跑sbt library-project/test
。
如果我log akka's configuration與akka.log-config-on-start = on
我收到了很多我無法使用的信息。
關於application.conf備註:你是對的(我重命名了這個文件)。對於可以訪問配置的ClassLoader,我相信這不是問題,因爲在讀取application.conf _is_時,我可以添加配置選項_outside__doctor_do _do_生效的library-project-conf。但是,也許我誤解你的建議 – derabbink
如果你改變其他reference.confs中的值,不要使用reference.conf。 reference.conf旨在提供默認值,而不是覆蓋它們。使用application.conf –
就像我說的,我改名爲reference.conf。整個事情與任何類裝載機無關。我認爲這是一個庫自己的(test-)application.conf不需要包含任何'library-project-conf {}'節,並且只有當你的庫在另一個項目中使用時,這樣的節纔會有效果。我還沒有能夠驗證這一點。 – derabbink