[ 
http://jira.codehaus.org/browse/MNG-2854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jochen Wiedmann updated MNG-2854:
---------------------------------

    Attachment: maven-archiver-properties-2.patch

Ok, here's an updated version of the patch. Note, that it contains a test case 
(MavenArchiverTest.testRecreation) that verifies whether the jar file is indeed 
created when invoked for the first time, but isn't for the second time.


> Recreating pom.properties always breaks the archivers uptodate check
> --------------------------------------------------------------------
>
>                 Key: MNG-2854
>                 URL: http://jira.codehaus.org/browse/MNG-2854
>             Project: Maven 2
>          Issue Type: Bug
>          Components: maven-archiver
>    Affects Versions: 2.0.5
>            Reporter: Jochen Wiedmann
>         Attachments: maven-archiver-properties-2.patch, 
> maven-archiver-properties.patch
>
>
> The maven-archiver creates a file called pom.properties on every invocation. 
> (Unless the flag "addMavenDescriptor" is set to false, which few people do.) 
> This forced recreation makes the uptodate check fail. In other words, jar 
> files are always recreated, regardless whether anything was recompiled. 
> Obviously, this makes the uptodate check of war files etc. fail as well, 
> because the included jar files are always changed.. This is a major drawback, 
> because it makes Maven much slower than, for example, Ant-.
> The attached patch proposes a solution for the same problem. What the patch 
> does:
> - It is obviously bad, that the generated pom.properties file is in the 
> projects directory. The
>   patch moves the file to ${project.build.directory}/maven-archiver, which 
> seems to me to
>   be a more sensible solution.
> - Second, whether we like it or not, there are projects, which create 
> multiple artifacts. In other
>   words, it isn't good to have a single file. The patch renames the 
> pom.properties file to
>   ${groupId}/$artifactFinalName.properties. Hopefully, this is sufficiently 
> unique.
> - Finally, the patch makes the maven-archiver check, whether the 
> pom.properties file has
>   actually changed. (In other words, whether groupId, artifactId, or version 
> have changed.)
>   It does so, by writing the file to an internal buffer and comparing the 
> file on the disk and
>   the internal buffer (after skipping the line with the timestamp).
> In other words, in the usual case, where groupId, artifactId and version 
> haven't changed, the pom.properties file remains unchanged. In particular, 
> the jar file doesn't need to be recreated.

-- 
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

        

Reply via email to