You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Michael Osipov (JIRA)" <ji...@apache.org> on 2016/10/15 23:11:20 UTC

[jira] [Comment Edited] (MNG-4142) Maven doesn't try to download a dependency when it already exists a version with classifier locally

    [ https://issues.apache.org/jira/browse/MNG-4142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15578899#comment-15578899 ] 

Michael Osipov edited comment on MNG-4142 at 10/15/16 11:11 PM:
----------------------------------------------------------------

I need to revert my previous statement partially. I have found probably the issue why this is caused. Initially I thought that this is MNG-4343, but it isn't. It is the Clover Maven Plugin. First of all, I have updated to 4.1.2 to reproduce with the attached usecase. The issue is located as well as in the plugin but also in the sample project configuration. At runtime [clover replaces the main artifact with a classified one|https://docs.atlassian.com/maven-clover2-plugin/latest/xref/com/atlassian/maven/plugin/clover/CloverInstrumentInternalMojo.html#467]. This happens in {{pre-site}} phase. Unfortunately, the author of the sample project added {{module1}} as a dependency of {{module2}}, but forgot to add the classifier. If you now run with added classifier, the stuff works. It can never ever work the way it is configured now because there is no unclassified main artifact to depend upon due to Clover plugin.

Upshot: this is a misconfiguration in your POMs.

If some one now still thinks that this will fail even if a main and a side artifact exist, please create a proper sample project.


was (Author: michael-o):
I need to revert my previous statement partially. I have found probably the issue why this is caused. Initially I thought that this is MNG-4343, but it isn't. It is the Clover Maven Plugin. First of all, I have updated to 4.1.2 to reproduce with the attached usecase. The issue is located as well as in the plugin but also in the sample project configuration. At runtime clover replaces the main artifact with a classified one. This happens in {{pre-site}} phase. Unfortunately, the author of the sample project added {{module1}} as a dependency of {{module2}}, but forgot to add the classifier. If you now run with added classifier, the stuff works. It can never ever work the way it is configured now because there is no unclassified main artifact to depend upon due to Clover plugin.

Upshot: this is a misconfiguration in your POMs.

If some one now still thinks that this will fail even if a main and a side artifact exist, please create a proper sample project.

> Maven doesn't try to download a dependency when it already exists a version with classifier locally
> ---------------------------------------------------------------------------------------------------
>
>                 Key: MNG-4142
>                 URL: https://issues.apache.org/jira/browse/MNG-4142
>             Project: Maven
>          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: Issues to be reviewed for 3.x
>
>         Attachments: MNG-4142.patch, 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 was sent by Atlassian JIRA
(v6.3.4#6332)