You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Tomo Suzuki (JIRA)" <ji...@apache.org> on 2019/08/12 20:13:00 UTC

[jira] [Updated] (MNG-6732) DefaultArtifactDescriptorReader.loadPom to check IGNORE_MISSING policy upon ArtifactTransferException

     [ https://issues.apache.org/jira/browse/MNG-6732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tomo Suzuki updated MNG-6732:
-----------------------------
    Summary: DefaultArtifactDescriptorReader.loadPom to check IGNORE_MISSING policy upon ArtifactTransferException  (was: DefaultArtifactDescriptorReader to check IGNORE_MISSING policy upon ArtifactTransferException)

> DefaultArtifactDescriptorReader.loadPom to check IGNORE_MISSING policy upon ArtifactTransferException
> -----------------------------------------------------------------------------------------------------
>
>                 Key: MNG-6732
>                 URL: https://issues.apache.org/jira/browse/MNG-6732
>             Project: Maven
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 3.6.1
>            Reporter: Tomo Suzuki
>            Priority: Major
>         Attachments: 62884438-89260580-bd04-11e9-8c4a-897d4b736dc7.png
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> h1. Problem
> Sometimes my Maven enforcer rule does not receive resolved artifact list because of missing artifact even when the missing artifact does not appear in the final dependency graph. 
> h1. Background
> Artifact xerces:xerces-impl:2.6.2 is not published in Maven Central.
> My enforcer rule can retrieve artifact list when applied to [https://github.com/suztomo/spring-cloud-gcp/tree/v1.1.2-linkage-checker] project even though it outputs "[WARNING] The POM for xerces:xerces-impl:jar:2.6.2 is missing, no dependency information available".
> On the other hand, the enforcer rule fails to retrieve artifact list when applied to [grpc-java-by-example/chat-example/chat-vaadin-client|https://github.com/saturnism/grpc-java-by-example/tree/master/chat-example/chat-vaadin-client] because of the missing xerces:xerces-impl:2.6.2.
>  
> [https://github.com/GoogleCloudPlatform/cloud-opensource-java/issues/834]
> h1. Diagnosis
> Currently DefaultArtifactDescriptorReader.loadPom method checks "ArtifactDescriptorPolicy.IGNORE_MISSING" policy upon ArtifactNotFoundException. This allows DefaultProjectDependenciesResolver.resolve calls repoSystem.resolveDependencies to obtain partially resolved artifact list even when there is a missing artifact (such as xerces:xerces-impl:2.6.2)
> However, when there is a retired Maven repository is involved (such as [http://repository.codehaus.org/] ), DefaultArtifactDescriptorReader.loadPom method throws ArtifactDescriptorException without checking "ArtifactDescriptorPolicy.IGNORE_MISSING" policy, and thus DefaultProjectDependenciesResolver.resolve does not return partially resolved artifact list.
>  
> Example project to demonstrate the diagnosis: [https://github.com/suztomo/maven-missing-artifact] . Even though module-b and module-c have the same dependency section, module-c fails to run Maven because of repository section.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)