You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Mark Dolgov (JIRA)" <ji...@codehaus.org> on 2010/02/25 12:08:55 UTC
[jira] Created: (MRESOURCES-120) Resource file is never overwritten
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
[jira] (MRESOURCES-120) Resource file is never overwritten
Posted by "Dennis Lundberg (JIRA)" <ji...@codehaus.org>.
[ https://jira.codehaus.org/browse/MRESOURCES-120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dennis Lundberg updated MRESOURCES-120:
---------------------------------------
Description:
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:
{code:java}
if ( to.lastModified() < from.lastModified() || overwrite )
{
copyFile( from, to );
}
{code}
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:
{code}
<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>
{code}
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.
was:
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.
> Resource file is never overwritten
> ----------------------------------
>
> Key: MRESOURCES-120
> URL: https://jira.codehaus.org/browse/MRESOURCES-120
> Project: Maven 2.x Resources Plugin
> Issue Type: Bug
> Components: copy
> 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:
> {code:java}
> if ( to.lastModified() < from.lastModified() || overwrite )
> {
> copyFile( from, to );
> }
> {code}
> 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:
> {code}
> <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>
> {code}
> 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, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (MRESOURCES-120) Resource file is never overwritten
Posted by "Dennis Lundberg (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/MRESOURCES-120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dennis Lundberg updated MRESOURCES-120:
---------------------------------------
Component/s: copy
> 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
> Components: copy
> 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