2011-11-09 154 views
0

在我的projet中,我在應用程序資源目錄中包含屬性佔位符的xml文件。然後,maven在構建時將佔位符從過濾器文件(例如app.filters)中過濾掉。 app.filters文件包含數據庫用戶名,密碼,連接字符串,sftp主機名,paswword,目錄等參數。這些參數的值根據應用程序部署在環境中的不同而不同 - dev,test,prod等。該項目分別爲每個環境使用不同的app.filters文件。Maven:部署時間過濾

我想知道是否有一種方法,使用maven,爲所有環境構建一次項目,然後在部署時根據環境來提供不同的過濾器文件以實現xml資源文件。

+0

這個問題有什麼不對?爲什麼要投票? – Raihan

回答

0

如果你說你想要一個可移植的構建(好主意,BTW),那麼它不是一個Maven問題。 Maven有助於構建您的應用程序。一旦你建立了你的EAR/WAR /無論Maven是不是照片中的。在運行時(不是部署時間),您可以讓應用程序在其類路徑中查找相應的配置文件。

有意義嗎?

+0

Maven不僅用於構建jar文件。 Maven在生命週期中已經有'deploy','install','exec'插件遵循'build'階段。在這些階段中要求資源過濾並非不現實。 – Raihan

+1

我從來沒有說過Maven只是用來構建JAR。我也沒有說過你試圖做的是不現實的。您的原始電子郵件問「如果有方法,使用maven,爲所有環境構建一次項目」。 **這是我所說的。 _現在你正在討論**構建過程中的資源過濾**。你想要哪一個_?在運行時處理資源文件必須是**應用程序的邏輯**。 Maven不參與到這裏。 –

+0

正如我在最初的文章中,我仍然在尋找一種使用maven執行'deployment'時間資源過濾的方法。由於maven已經提供了'build'時間過濾功能,並且maven在生成之外的項目生命週期中得到了involed,它已經成爲一個maven問題。如果目前無法使用Maven或其插件完成該功能,則需要在未來版本中添加其功能。 – Raihan