[ http://jira.codehaus.org/browse/MNG-4142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=187470#action_187470 ]
David Rousselie commented on MNG-4142: -------------------------------------- The problem is that when the Maven resolve the artifact version with maven-metadata-local.xml when it exists and it resolves it to 1.0.0-SNAPSHOT whereas only module1-1.0.0-SNAPSHOT-clover.jar (in this exemple). Then when it try to access the file artifact (module1-1.0.0-SNAPSHOT.jar) and fails, it tries to get the *same version* on remote repositories whereas it should have try to resolve the artifact version with data found in maven-metadata-${remotereponame}.xml before trying to get it from each repository. I have attached a small patch (base on revision 805295 in branch maven-2.2.x) which might not be the best way to correct this bug : while resolving artifact version, it loads local metadata only if artifact's file exists locally. > Maven doesn't try to download a dependency when it already exists a version > with classifier locally > --------------------------------------------------------------------------------------------------- > > Key: MNG-4142 > URL: http://jira.codehaus.org/browse/MNG-4142 > Project: Maven 2 > Issue Type: Bug > Components: Dependencies > Affects Versions: 2.0.9, 2.0.10, 2.1.0 > Environment: Java 5, Windows XP > Reporter: Arnaud Heritier > Priority: Critical > Fix For: 2.2.x > > Attachments: test-metadata-local-clover.zip > > > 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 {code}mvn site{code} > 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 : > {code} > [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) > {code} > 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 : > {code}mvn install -f module2/pom.xml{code} > 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. -- 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