Maven Resources Plugin

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Variable Substitution in Resource Files

Set "filtering" to true as follows, and all variables will be substituted on copy:

<project>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
      ...
    </resources>
    ...
  </build>
  ...
</project>

Copy Text Files in target and Final Artifact

  <build>
        ...
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.txt</include>
                </includes>
            </resource>
        </resources>
        ...
  </build>

This will copy all text files found under src/main/java into ./target/classes and make them available in the class path.

Warning! If you specify just the <directory>/src/main/java</directory> resource under <resources>, this will remove all other implicit resources, including <directory>src/main/resources</directory> so if you were relying on that (for log4j.xml or whatever else) you will need to add it explicitly:

  <build>
        ...
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.txt</include>
                </includes>
            </resource>
        </resources>
        ...
  </build>