2017-08-16 226 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

我已更新我的问题。请检查 –

相关问题