Affects Version/s: 3.6.1
Fix Version/s: None
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.
Artifact xerces:xerces-impl:2.6.2 is not published in Maven Central.
My enforcer rule can retrieve artifact list through DefaultProjectDependenciesResolver.resolve 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". The missing artifact does not appear in final dependency graph.
On the other hand, the enforcer rule fails to retrieve artifact list when applied to grpc-java-by-example/chat-example/chat-vaadin-client because of the missing xerces:xerces-impl:2.6.2, even though the artifact should not appear in the final dependency graph.
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 gets an ArtifactTransferException and throws ArtifactDescriptorException without checking "ArtifactDescriptorPolicy.IGNORE_MISSING" policy (excerpt below), and thus DefaultProjectDependenciesResolver.resolve does not return partially resolved artifact list.
ArtifactNotFoundException is a special case of ArtifactTransferException.
Example project to demonstrate the diagnosis: https://github.com/suztomo/maven-missing-artifact . In this example, even though module-b and module-c have the same dependency section, module-c fails to run Maven because of a repository section containing a retired repository URL.