Maven - 从战争中排除类文件

twe*_*sat 5 maven-2 war

我有 :

src/main/java/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>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

我能怎么做 ?


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

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <packagingExcludes>**/Class2.class</packagingExcludes>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

但......

让我们从另一方面解决问题:我想排除除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>
Run Code Online (Sandbox Code Playgroud)

而这次它不起作用.

Aar*_*lla 9

正如文档所说,您应该使用该packagingExcludes元素.

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


sid*_*udi 5

文档中,排除将优先于包含。在您的情况下,使用 PackagingExcludes 明确排除 class2。

<packagingExcludes>WEB-INF/classes/com/tuto/Class2.class</packagingExcludes>
Run Code Online (Sandbox Code Playgroud)