user509392
user509392

Reputation: 21

Maven - Exclude certain resource files into WAR from the default src/main/resources location

Currently, I want to exclude some files from the default src/main/resources folder into my WAR when packaging

I tried using maven-war-plugin with the following configuration but failed.

<webResources>
  <resource>
    <directory>src/main/resources</directory>
    <targetPath>WEB-INF/classes</targetPath>
    <excludes>
      <exclude>*.xml</exclude>
    </excludes>
  </resource>
</webResources>

...WEB-INF/classes will still contain the XML files.

How to do so?

Upvotes: 2

Views: 9459

Answers (3)

Matt Harrison
Matt Harrison

Reputation: 358

This is somewhat late to this question, but I was just trying to do the same thing, and have found that (with the maven-war-plugin 3.1.0 version), adding:

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

to the configuration should do what was asked for (it worked for me to remove properties files we didn't want to distribute with the war file).

Upvotes: 1

edrabc
edrabc

Reputation: 1279

As pointed out in https://stackoverflow.com/a/2737635/722997, a quick way to exclude files from the WAR package is to exclude them in the build->resources section, like:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>*.xml</exclude>
            </excludes>
        </resource>
    </resources>
    ...
</build>

Note: take into account that the following configuration will only affect default executions of Maven (WAR package, JAR package, ...), but not assemblies or other user configurations.

Upvotes: 5

Raghuram
Raghuram

Reputation: 52645

From the documentation of maven war plugin, you can include and exclude resources as follows:

...
        <configuration>
          <webResources>
            <resource>
              <!-- the default value is ** -->
              <includes>
                <include>**/pattern1</include>
                <include>*pattern2</include>
              <includes>
              <!-- there's no default value for this -->
              <excludes>
                <exclude>*pattern3/pattern3</exclude>
                <exclude>pattern4/pattern4</exclude>
              </excludes>
            </resource>
          </webResources>
        </configuration>
        ...

Are you following this and it still does not work? If so, can you post your pom snippet?

Upvotes: 0

Related Questions