Maven - 从战争中排除类文件

时间:2013-09-10 07:00:16

标签: maven-2 war

我有:

的src /主/爪哇/ com.tuto
|
-Class1.java
-Class2.java
-Class3.java

我的pom打包了一场战争。 所以在我的战争中,在WEB-INF / classes / com / tuto中我发现了3个类。

现在我要排除Class2.java

我试过

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1</version>
            <configuration>
              <excludes>
                 <exclude>**/Class2.class</exclude>
              </excludes>
            </configuration>
        </plugin>

但它不起作用。

我该怎么办?


好的,就像Aaron告诉我的那样,这很有效:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <packagingExcludes>**/Class2.class</packagingExcludes>
    </configuration>
</plugin>

但是......

让我们从另一方面解决问题:我想排除除Class1和Class3之外的所有问题

所以我试过

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <packagingIncludes>**/Class1.class,**/Class3.class</packagingIncludes>
    </configuration>
</plugin>

而这次它不起作用。

4 个答案:

答案 0 :(得分:9)

As the documentation says,您应该使用packagingExcludes元素。

请注意packagingExcludes不使用嵌套元素。相反,内容是“以逗号分隔的Ant文件集模式列表”。

答案 1 :(得分:3)

documentation开始,排除将优先于包含。在您的情况下,使用packagingExcludes显式排除class2。

<packagingExcludes>WEB-INF/classes/com/tuto/Class2.class</packagingExcludes>

答案 2 :(得分:1)

完整的插件xml应该类似于以下

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <outputDirectory>${build.output.directory}</outputDirectory>
        <packagingExcludes>WEB-INF/classes/ItemConsumer.class</packagingExcludes>
    </configuration>
</plugin>

答案 3 :(得分:0)

将插件添加到pom.xml - 100%正常工作。

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <!--package path you want to delete-->
                    <packagingExcludes>WEB-INF/classes/lk/**</packagingExcludes>

                    <webResources>
                        <resource>
                            <!--project build path-->
                            <directory>${project.basedir}/target/classes/</directory>
                            <filtering>true</filtering>
                            <includes><include>**/*.class</include></includes>
                        </resource>
                    </webResources>

                </configuration>
            </plugin>