2013-06-01 115 views
2

我們有一個使用播放框架構建的複雜應用程序。該應用程序分爲不同的部分。網站,爬蟲和所有其他人使用類似的類和配置文件。爲了解決這個問題,我們將這些集中在播放應用程序根目錄下的一個文件夾中。播放框架配置包含dist dist

在開發中,用於加載多個配置文件的類和include語句的import語句正常工作。在生產中,我們曾經部署代碼的dist版本,但包含所有相關路徑的包含已停止工作。

我們嘗試了-Dconfig.file來加載父級。該文件已添加到生成的zip文件夾中,但包含的文件沒有找到。

有沒有人有一個想法,如何「編譯」或集中配置文件進行播放加載它們?

謝謝你的幫助。

+0

我們在我們的項目中使用sbt-assembly來打包我們的應用程序。然後,當它被部署時,我們將配置文件夾放在classpath中並從該文件夾加載配置。希望這有助於 – vitalii

回答

1

我有同樣的問題,我發現我必須指定-Dconfig.file的完整路徑,以便包含它的部分將工作。

/path/to/dir --> 
    production.conf = {include "application.conf" and some overrides} 
    start 
    my-app/ 

./start -Dconfig.file = /路徑/要/ DIR/production.conf

在玩2.2分發拉鍊結構改變編輯,現在有一箱應用程序名稱腳本在其中,因此:

/path/to/dir --> 
    production.conf = {include "application.conf" and some overrides} 
    bin/my-app 

    ./bin/my-app -Dconfig.file=/path/to/dir/production.conf 
+0

嗨,這不適合我們,因爲配置包含多個。第一個配置被添加到壓縮文件,但其他配置被遺忘。 – Philippe

+0

仍然發生在2.3。這種行爲如此沒有記錄,並且在生產中部署時經常會破壞事情。這是否是一個很好的理由? – Renan

0

所以我不明白這是如何工作的,但我會嘗試解釋大局。

要允許多個項目使用「外部」配置文件,我們創建了另一個項目。這個新項目是一種圖書館。它擁有多個項目和配置文件中使用的所有對象。

每個項目都有這個「核心」項目作爲依賴項。當我們要求它創建一個分發包時,這允許播放將所有代碼合併到一個zip文件中。

希望這會有所幫助。