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