2014-03-31 38 views
2

我們有一個包含多個依賴.jar項目的.ear項目,我們正在使用Maven。每個項目都有自己的屬性文件,但其中的屬性沒有特定的值,但是佔位符(例如,在Eclipse中發佈應用程序時替換屬性文件的內容

database.url=${database.url} 

佔位符$ {database.url}在使用資源插件的Maven構建過程中被替換。因此,對於每個階段(本地,測試,集成,生產),我們有不同的Maven配置文件定義過濾器,所以如果我們建立了測試階段,我們得到類似

database.url=url.for.test.db 

的應用程序在WLS 12運行,我們希望使用Eclipse服務器插件(我們使用Eclipse Kepler)將其部署在本地WLS上。但是,當我們將應用程序添加到Eclipse中的服務器併發布時,它不起作用,因爲屬性文件中的佔位符未被替換爲特定的值。

據我所知,內容部署位於Eclipse工作空間:

<workspace>\.metadata\.plugins\org.eclipse.core.resources\.projects\<ear-project-name>\beadep\<WLS domain name>\<ear-project-name> 

當然,我們可以改變在該位置的屬性文件,但每當我們在Eclipse發佈,這些變化被覆蓋,我們得到原來的財產文件

database.url=${database.url} 

這是無用的,當它被部署到WLS。

在將屬性文件從Eclipse部署到WLS之前是否有任何機制或可能性來更改屬性文件?

感謝您的幫助。

回答

0

確定這裏是我選擇來解決這個問題的解決方案(我不知道它是否是最好的,但至少是工作):

我添加了一個新的文件夾命名的.ear項目「屬性 - 本地」。該文件夾僅包含那些與本地部署(沒有佔位符)相關的屬性文件,例如,

database.url = url.for.local.db

Wihtin Eclipse項目的屬性,有部分 「部署大會」。我將新文件夾「properties-local」添加到部署路徑APP-INF/classes,因此這是他們將出現在用於本地部署的.ear中的位置。

負責爲遠程階段構建.ear文件的maven-ear-plugin不知道目錄屬性 - 本地。

因此該解決方案的缺點是,現在有與屬性文件兩個文件夾:一個爲本地Eclipse的部署,一個用於其部署在遠程服務器上的.ear文件。

相關問題