Maven-war-plugin插件中去除classes

1、Maven-war-plugin插件中去除WEB-INF中的classes

在Maven中使用maven-war-plugin插件打war包,但有时会将classes文件另外打成jar包,classes文件不再需要,那么如何将它从war包中去除呢?

答案是使用packagingExcludes属性,在packagingExcludes中可以将不需要的文件排除在外:

<packagingExcludes>WEB-INF/classes/**/**</packagingExcludes>

注意:路径可能需要根据实际情况调整。


2、Maven-war-plugin插件中packagingExcludes与webResources的比较

(1)相同点:
packagingExcludes与webResources 均可以排除某些文件。
(2)不同点:
packagingExcludes针对拷贝到target后的资源进行处理。
webResources针对编译前的资源进行处理。
较完整的例子如下:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <warSourceDirectory>WebContent</warSourceDirectory>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <packagingExcludes>WEB-INF/classes/**/**</packagingExcludes>
        <!--
        <webResources>
            <resource>
              <directory>target/${project.artifactId}/WEB-INF/classes</directory>
              <excludes>
                  <exclude>**/**</exclude>
              </excludes>
            </resource>
        </webResources>        
        -->
    </configuration>
</plugin>


posted @ 2017-01-13 16:47  hongweigg  阅读(48)  评论(0)    收藏  举报