Maven Resources Plugin: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 49: Line 49:
This will copy all text files found under src/main/java into ./target/classes and make them available in the class path.
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:
'''Warning!''' If you specify just the &lt;directory&gt;/src/main/java&lt;/directory&gt; resource under  &lt;resources&gt;, this will remove all other implicit resources, including &lt;directory&gt;src/main/resources&lt;/directory&gt; so if you were relying on that (for <tt>log4j.xml</tt> or whatever else) you will need to add it explicitly:


{{{
<pre>
   <build>
   <build>
         ...
         ...
Line 70: Line 70:
         ...
         ...
   </build>
   </build>
}}}
</pre>

Revision as of 08:22, 28 January 2016

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>