Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to stop Maven from overwriting resource files

I have the default maven structure:

main
--java
--resources
--webapp

I see that every mvn compile copies resources even though they were not changed. What should I do to make build copy only changed files?

<build>
         <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

        </plugins>
    </build>
    <dependencies>
        ...
    </dependencies>

    <properties>
        <maven.resources.overwrite>false</maven.resources.overwrite>
    </properties>

Here is the output in debug mode:

[INFO] Using 'cp1252' encoding to copy filtered resources.
[DEBUG] resource with targetPath null
directory C:\core\src\main\resources
excludes []
includes []
[DEBUG] ignoreDelta true
[INFO] Copying 190 resources
[DEBUG] file batch.bat has a filtered file extension
[DEBUG] copy C:\core\src\main\resources\batch.bat to C:\core\target\classes\batch.bat
[DEBUG] file DataObject.hbm.xml has a filtered file extension
[DEBUG] copy C:\core\src\main\resources\com\data\DataObject.hbm.xml to C:\core\target\classes\com\data\DataObject.hbm.xml
like image 983
lili Avatar asked Nov 13 '15 20:11

lili


2 Answers

Use the property -Dmaven.resources.overwrite=false on the Maven command. See the overwrite parameter of the resources:resources goal.

However the documentation mentions this is the default behavior so check if this parameter is set to true somewhere in your project configuration.

EDIT:

As mentioned in the comments, it seems that even though the log indicates copying, in fact the files are not being changed (the timestamps remain the same when maven.resources.overwrite is false).

like image 92
M A Avatar answered Oct 13 '22 23:10

M A


Be aware:

The maven-resources-plugin ignores the overwrite flag if filtering resources is activated.

like image 28
Sven Döring Avatar answered Oct 14 '22 00:10

Sven Döring