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]