2010-04-15 29 views
5

我目前開始着手開發一個Maven Web應用程序項目,該項目需要使用jetty:eclipse中的開發/調試的運行爆炸目標。如何訪問maven項目中的XML文件,以便在打包時保持可用

現在,我有一個XML文件,其中需要在運行時訪問的內容。我的問題是:在哪裏放置文件,以使讀取的代碼能夠以「分解」和打包(即在WAR)模式下工作?

將文件放在src/main/java(以便在類路徑中)將不會將其剪切,因爲maven會過濾掉所有包裝上的非java文件。 當文件在src/main/resources中時,其中一個意思是找出項目的根路徑(在eclipse開發過程中)並查看該目錄 - 但是當項目將會是這樣時包裝。

當然,我可以寫入試圖從兩個位置讀取文件的代碼,但這看起來相當麻煩。有什麼建議麼?

回答

6

src/main/resources中的文件複製到target/classes目錄中,並在類路徑中可用。只需從班級路徑中閱讀即可。從行家文檔中How do I add resources to my JAR?解釋(在這裏測試資源):

在單元測試中,你可以使用一個簡單的 代碼片段像下面這樣 訪問所需 測試資源:

... 

// Retrieve resource 
InputStream is = getClass().getResourceAsStream("/test.properties"); 

// Do something with the resource 

... 
1

在這種情況下,我把文件src/main/resources目錄下,使用Spring的ClassPathResource。這種方式可以在IDE中,Maven構建過程和運行時訪問該文件。

相關問題