The following comment has been added to this issue:

     Author: Marius Krabset
    Created: Wed, 23 Feb 2005 9:04 AM
       Body:
How about comparing the md5sums in order to decide whether the jar already 
present in the local repository should be overwritten or not.

Eg. replace the jar:install-goal in the jar-plugin with something like this:
<goal name="jar:install" prereqs="jar:jar" description="Install the jar in the 
local repository">
  <j:new var="md5" className="org.apache.maven.util.MD5Sum"/>
  
  <util:file var="localArtifactFile" 
name="${maven.build.dir}/${maven.final.name}.jar"/> 
  <util:file var="repArtifactFile" 
name="${maven.repo.local}/${pom.groupId}/jars/${pom.artifactId}-${pom.currentVersion}.jar"
 />   
  ${md5.setFile(localArtifactFile)}
  ${md5.execute()}
  <j:set var="localCheckSum" value="${md5.getChecksum()}"/>      
  ${md5.setFile(repArtifactFile)}
  ${md5.execute()}
  <j:set var="repCheckSum" value="${md5.getChecksum()}"/>
  <j:if test="${!repCheckSum.equals(localCheckSum)}">
    <artifact:install
      artifact="${maven.build.dir}/${maven.final.name}.jar"
      type="jar"
      project="${pom}"
    />
  </j:if>
</goal>

Since it's common to store md5sum-files in the local repository, the above goal 
could also be changed to:
1) Use md5sum-file if present
2) Generate and store md5sum-file if not present.
This could increase performance since reading an m5sum-file is a lot faster 
than calculating it.
---------------------------------------------------------------------
View this comment:
  http://jira.codehaus.org/browse/MPJAR-33?page=comments#action_30223

---------------------------------------------------------------------
View the issue:
  http://jira.codehaus.org/browse/MPJAR-33

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: MPJAR-33
    Summary: jar:install copies jar even when no changes have occurred
       Type: Improvement

     Status: Open
   Priority: Major

 Original Estimate: 2 minutes
 Time Spent: Unknown
  Remaining: 2 minutes

    Project: maven-jar-plugin
   Fix Fors:
             1.7
   Versions:
             1.6

   Assignee: Jason van Zyl
   Reporter: Colin Saxton

    Created: Tue, 13 Jul 2004 4:30 AM
    Updated: Wed, 23 Feb 2005 9:04 AM
Environment: Linux/Windows

Description:
jar:install copies the built jar from the target area to the local repository 
even if the jar has no changes. This can cause a snowball effect on builds if 
you are using the reactor for instance. When testing a large project (before a 
release) it can be cumbersome since the build time is increased significantly.

As an example, I currently use the reactor to build 26 separate jars with all 
of them dependent on the base component. if I change one of them and then 
re-run the build it builds everything because the base jar is being copied back 
into the repository even if I don' change it. This causes the reactor to build 
all of the other jars and so-forth.

All that is needed is to change the jar:install copy line...remove the 
overwrite attribute and the builds speed up...It doesn't break anything either 
since you can alway runs a clean before a major build but when testing you can 
just keep running maven without the clean...you would be saving a lot of disk 
activity around the world by removing the overwrite attribute. 


---------------------------------------------------------------------
JIRA INFORMATION:
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

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to