2017-08-16 85 views
0

我在項目基礎目錄中有config文件夾。當我嘗試構建戰爭時,文件夾不會被添加到war文件中。我有外部jar使用這個文件夾來讀取log4j.properties。使用Maven創建WAR時包含外部配置文件夾

Inisde罐代碼(「配置/ log4j.properties」)

當我試圖訪問在Tomcat服務器中我越來越沒有發現的config/log4j.properties路徑的應用程序。

當前文件夾結構

項目 --src /主/ --src /測試 --src /資源 --lib --config(內部配置log4j.properties) --target

裏面的lib文件夾我有一些自定義jar,我在我的戰爭文件內添加maven插件。 該自定義jar讀取log4j properties.this配置文件夾是springboot app.when我試圖通過eclipse運行該應用程序的工作file.But當我試圖建立一個戰爭和手動部署對tomcat的戰爭,然後它的失敗。我不知道應該在哪裏保留這個配置文件夾內部的戰爭,以便自定義jar可以讀取它。

+0

任何幫助。我從這兩天開始就一直在努力工作。 –

回答

0

Maven傾向於工作well當你採用它的約定,但是當你不這樣做時,你可能會發現事情停止工作。 因此,我的建議是根據Maven Standard Directory Layout構建您的項目。

鑑於這種項目結構:

src 
| |-- main 
| | |-- resources 
| | | |-- config 
| | | | | -- log4j.properties 

Maven的WAR插件將在默認情況下,創建一個WAR與此內容:

WEB-INF 
| |-- ... 
| | 
| |-- config 
| |  -- log4j.properties  

所以,任何一個試圖加載配置/ log4j的。屬性從類路徑將發現log4j.properties文件

如果你真的不能不能將config文件夾移動到src/main/resources那麼你可以瑟Maven的WAR插件add an external resource,例如:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>3.1.0</version> 
    <configuration> 
     <webResources> 
     <resource> 
      <directory>config</directory> 
      <targetPath>WEB-INF/config</targetPath> 
     </resource> 
     </webResources> 
    </configuration> 
    </plugin> 

這將導致log4j.properties被複制到WEB-INF/config你的戰爭,即相同的最終結果中,如果你會得到,如果你從你的項目的根目錄移動configsrc/main/resources

+0

它不是我的。 –

+0

你能否提供一些細節?也許可以解釋你所嘗試的,發生了什麼以及什麼 - 確切地說 - 你的意思是「不是Wokring」?如果您回覆,請更新原始問題,因爲閱讀問題比評論更容易。 – glytching

+0

我已更新我的問題。請檢查 –

相關問題