diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java index a0e29f1d818f..c9aafd9ad047 100644 --- a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java +++ b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java @@ -56,6 +56,7 @@ import org.eclipse.aether.repository.LocalRepositoryManager; import org.eclipse.aether.repository.RepositoryPolicy; import org.eclipse.aether.repository.WorkspaceReader; +import org.eclipse.aether.resolution.ArtifactDescriptorPolicy; import org.eclipse.aether.resolution.ResolutionErrorPolicy; import org.eclipse.aether.util.ConfigUtils; import org.eclipse.aether.util.listener.ChainedRepositoryListener; @@ -64,6 +65,7 @@ import org.eclipse.aether.util.repository.DefaultAuthenticationSelector; import org.eclipse.aether.util.repository.DefaultMirrorSelector; import org.eclipse.aether.util.repository.DefaultProxySelector; +import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy; import org.eclipse.aether.util.repository.SimpleResolutionErrorPolicy; import org.eclipse.sisu.Nullable; import org.slf4j.Logger; @@ -373,6 +375,12 @@ public DefaultRepositorySystemSession newRepositorySession(MavenExecutionRequest session.getRepositoryListener(), new ReverseTreeRepositoryListener())); } + boolean strictDescriptorPolicy = + ConfigUtils.getBoolean(session, false, "aether.artifactDescriptorPolicy.strict"); + if (strictDescriptorPolicy) { + session.setArtifactDescriptorPolicy(new SimpleArtifactDescriptorPolicy(ArtifactDescriptorPolicy.STRICT)); + } + mavenRepositorySystem.injectMirror(request.getRemoteRepositories(), request.getMirrors()); mavenRepositorySystem.injectProxy(session, request.getRemoteRepositories()); mavenRepositorySystem.injectAuthentication(session, request.getRemoteRepositories());