仅保留WEB-INF / classes文件夹中的.class和.properties文件

时间:2013-03-14 08:41:50

标签: java-ee maven

我将当前的Java EE项目移植到maven。我正在研究由maven创建的战争的文件夹结构,不知何故卡住了。

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

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

- 添加更多数据 -

使用

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

在我的战争中创建一个资源文件夹并将所有这些文件保存在资源文件夹中,但不知何故,它们的副本也在WEB-INF / classes中创建

2 个答案:

答案 0 :(得分:3)

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

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

资源被复制到classes目录中,因为src/main/resources的目的地是接收您希望在类路径上可用的文件(properties文件,xml配置文件等。 )。

答案 1 :(得分: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>