2013-03-14 33 views
2

我将我当前的Java EE项目移植到maven。我正在研究由maven创建的战争的文件夹结构,不知何故卡住了。在WEB-INF/classes文件夹中只保存.class和.properties文件

Maven将我的所有文件复制到webapps中,包括.css,.js等在我的WEB-INF/classes文件夹中。我为他们保留了不同的文件夹资源,并且只想将.class和.properties文件复制到classes文件夹中。

任何想法我怎么能做到这一点?

- 添加更多的数据 -

使用

<webResources> 
<resource> 
<directory>${basedir}/src/main/resources</directory> 
<targetPath>resources</targetPath> 
<includes> 
<include>**/*.*</include> 
</includes> 
</resource> 
</webResources> 

我的战争中创建一个资源文件夹,并保持资源文件夹内的所有这些文件,但不知何故,也创造了他们里面的一个副本WEB-INF/classes

+0

位于您的目录结构中的.css和.js资源在哪里? – benzonico 2013-03-14 08:43:51

+0

它们位于src \ main \ resources中 – ItachiUchiha 2013-03-14 08:47:10

回答

3

您可以配置maven-war-plugin以从包装中排除某些文件。检查documentation

但是,通常您会将您的Web资源保存在应用程序的webapp目录中的类路径之外(因此不在src/main/resources中)。

的资源在classes目录复制,因为src/main/resources是destinated接收要提供在classpath文件(properties文件,XML配置文件等)。

3

作为@benzonico提到,你应该保持你的webapp资源在src/main/webapp而不是src/main/resources。如果您无法更改该设置,则可以添加类似于以下内容的内容,以将jscss文件从复制到类文件夹中排除。

<build> 
    ... 
    <resources> 
     <resource> 
     <directory>src/main/resources</directory> 
     <excludes> 
      <exclude>*.css</exclude> 
      <exclude>*.js</exclude> 
     </excludes> 
     </resource> 
     ... 
    </resources> 
    ... 
    </build> 
相关问题