You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Jorge Gomez (JIRA)" <ji...@codehaus.org> on 2012/08/27 19:03:21 UTC

[jira] (MANT-73) Wrong repositories in generated get-deps task and speed improvement

Jorge Gomez created MANT-73:
-------------------------------

             Summary: Wrong repositories in generated get-deps task and speed improvement
                 Key: MANT-73
                 URL: https://jira.codehaus.org/browse/MANT-73
             Project: Maven 2.x Ant Plugin
          Issue Type: Bug
    Affects Versions: 2.3
         Environment: linux, jDK 1.6, maven 3.0.4
            Reporter: Jorge Gomez
            Priority: Blocker
         Attachments: avoidsnapshots_and_skipexisting.diff

When one artifact existed in more than one repository, the first was selected by default. This lead to undesirable behaviors when developing for sonatype repository. In this case, I observed snapshots version were automatically selected, but they did not exist. For instance, the following was generated for Junit 4.8.1.

<get src="https://oss.sonatype.org/content/repositories/snapshots/junit/junit/4.8.1/junit-4.8.1.jar"
         dest="${maven.repo.local}/junit/junit/4.8.1/junit-4.8.1.jar"
         usetimestamp="false"
         ignoreerrors="true"/>

https://oss.sonatype.org/content/repositories/snapshots/junit/junit/4.8.1/junit-4.8.1.jar does not exist, by the way. This lead to important delays in compilation and any other target depending on get-deps.

Making the AntBuildWriter select those repositories which are not snapshots, solves the issues. With the attched patch, the previous task becomes into:

    <get src="https://oss.sonatype.org/content/repositories/snapshots/junit/junit/4.8.1/junit-4.8.1.jar"
         dest="${maven.repo.local}/junit/junit/4.8.1/junit-4.8.1.jar"
         usetimestamp="false"
         ignoreerrors="true"/>

Nevertheless, this still makes the get-deps slow. By increasing the minimum ant version to 1.8.0, it is possible to use "skipexisting" attribute for ant task. This, combined with "usetimestamp=true" makes compilation lightning fast once everything is downloaded. Now the task looks like:

    <get src="http://repo.maven.apache.org/maven2/junit/junit/4.8.1/junit-4.8.1.jar" 
         dest="${maven.repo.local}/junit/junit/4.8.1/junit-4.8.1.jar" 
         usetimestamp="true" 
         ignoreerrors="true" 
         skipexisting="true"/>

The attached patch was created against the 2.3 tag version of the repository, though it is present as well in the head of the trunk. The pom.xml file was modified only to include the 1.8.0 version of ant instead of the old 1.7.

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