Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-4142

Maven doesn't try to download a dependency when it already exists a version with classifier locally

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Incomplete
    • 2.0.9, 2.0.10, 2.1.0
    • None
    • Dependencies
    • None
    • Java 5, Windows XP

    Description

      When maven installs in the local repository an artifact with a classifier, and not the principal artifact, it won't try in a reactor to download the principal artifact from the remote repository.
      I created a testcase to reproduce it. It's quite simple. You unzip it and in the root directory you launch

      mvn site

      This build uses clover, thus it installs locally cloverified versions of artifacts.
      The build will fail because it doesn't find the SNAPSHOT of the module1 :

      [INFO] ------------------------------------------------------------------------
      [ERROR] BUILD ERROR
      [INFO] ------------------------------------------------------------------------
      [INFO] Failed to resolve artifact.
      
      Missing:
      ----------
      1) org.apache.maven.it.test-metadata-local-clover:module1:jar:1.0.0-SNAPSHOT
      
        Try downloading the file manually from the project website.
      
        Then, install it using the command:
            mvn install:install-file -DgroupId=org.apache.maven.it.test-metadata-local-clover -DartifactId=module1 -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile=/pa
      th/to/file
      
        Alternatively, if you host your own repository you can deploy the file there:
            mvn deploy:deploy-file -DgroupId=org.apache.maven.it.test-metadata-local-clover -DartifactId=module1 -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile=/path
      /to/file -Durl=[url] -DrepositoryId=[id]
      
        Path to dependency:
              1) org.apache.maven.it.test-metadata-local-clover:module2:jar:1.0.0-SNAPSHOT
              2) org.apache.maven.it.test-metadata-local-clover:module1:jar:1.0.0-SNAPSHOT
      
      ----------
      1 required artifact is missing.
      
      for artifact:
        org.apache.maven.it.test-metadata-local-clover:module2:jar:1.0.0-SNAPSHOT
      
      from the specified remote repositories:
        central (http://maven-proxy.groupe.generali.fr/all),
        remote-repo (file://E:\jtb\workspaces\tests\test-metadata-local-clover/remote-repo)
      

      It's anormal because I set a "local" remote repository in the build where it should try to download it.
      You can validate that it is working by launching :

      mvn install -f module2/pom.xml

      This bug is really annoying for us. It exists for a long long time now. I thought it was due to a problem with metadata sent by archiva, but after migrating to nexus the problem always occurs.
      I don't know if the problem is in metadata or in the reactor itself. I think it is the second one. There are many issues opened about the reactor and classifiers.
      Is there some who can try if it can reproduce the error with my testcase ?
      It should be easy to create a real IT for maven with it if it is necessary.

      Attachments

        1. MNG-4142.patch
          2 kB
          David Rousselie
        2. test-metadata-local-clover.zip
          21 kB
          Arnaud Heritier

        Issue Links

          Activity

            People

              Unassigned Unassigned
              aheritier Arnaud Heritier
              Votes:
              38 Vote for this issue
              Watchers:
              25 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: