Search code examples
maven-2war

Maven - Exclude class files from war


I have :

src/main/java/com.tuto
  • Class1.java
  • Class2.java
  • Class3.java

My pom is packaging a war. So in my war, in WEB-INF/classes/com/tuto I found the 3 classes.

Now I want to exclude Class2.java

I tried

        <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>

But it's not working.

How can I do ?


Ok, so like Aaron tell me, this is working :

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

But ...

Let's take the problem by the other side : I want to exclude all except Class1 and Class3

So I tried

<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>

and this time it's not working.


Solution

  • As the documentation says, you should use the packagingExcludes element instead.

    Note that packagingExcludes doesn't use nested elements. Instead, the content is a "comma-separated list of Ant file set patterns".