Resource file is never overwritten ---------------------------------- Key: MRESOURCES-120 URL: http://jira.codehaus.org/browse/MRESOURCES-120 Project: Maven 2.x Resources Plugin Issue Type: Bug Affects Versions: 2.3 Environment: Windows XP Professional SP3 Maven 2.2.1 jdk1.6.0_18 Reporter: Mark Dolgov Priority: Minor
I have the 2 resource files with the same name (config.properties) under following locations: Location 1: .../src/main/resources/config.properties (modification date 2009-11-25) Location 2: .../src/main/resources/envSpecific/test/config.properties (modification date 2009-12-21) During build, config.properties should be put under target/classes folder. My pom configuration (see excerpt below) makes it so that: 1. 'config.properties' file from location 1 is copied to target/classes; 2. 'config.properties' file from location 2 is copied to target/classes and overwrites the one from previous step. Maven really tries to do that, see maven output excerpt below. The PROBLEM: the file, copied in step 2, does NOT overwrite the one, copied in step 1. Though, it works, when I set plugin property 'overwrite' == true. But since files modification dates are different (see above), it should work with overwrite==false. Possible cause: I debugged the related code a bit, and found, that maven-resources-plugin uses plexus-utils-1.5.6.jar, and its FileUtils.class for copying. In FileUtils, starting line 2049 there is a following code block: ------------ if ( to.lastModified() < from.lastModified() || overwrite ) { copyFile( from, to ); } ------------ According debug, - variable 'to' references the file, which has been already copied to target/class folder (on step 1). - variable 'from' references the file from the source (location 2). In my environment to.lastModified()< from.lastModified() == false, because file referenced by 'to' has modification date, when it was copied to class folder. Possible solution: I guess, 'from' file should be compared not to the one in target/class folder, but to corresponding file from source (location 1), which was copied to class folder (step 1). ---------------------------------------- Maven build configuration, related to resources: <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <excludes> <exclude>envSpecific/**/*</exclude> </excludes> </resource> <resource> <directory>${basedir}/src/main/resources/envSpecific/${env}</directory> <filtering>true</filtering> <includes> <include>**/*</include> </includes> </resource> </resources> Maven output (sorry, can't paste debug mode due security reasons, but it does not report any problems with copying): >mvn -Denv=test process-resources [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building Election Results web module [INFO] task-segment: [process-resources] [INFO] ------------------------------------------------------------------------ [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 6 resources [INFO] Copying 1 resource [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ ----------------------------------- Another minor problem, is that even though (in debug mode) maven declares '[INFO] Copying 1 resource', but it never says, if succeeded or not. Sorry, if not a bug or duplicate. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira