From 7e01af0224c0919178812d1e28d48d3b14317064 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Thu, 9 Oct 2025 13:33:42 +0200 Subject: [PATCH] Fix duplicate repositories piling up when building models --- .../org/apache/maven/project/DefaultProjectBuilder.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java index ecf97e4b1b13..f1d3406ee4e3 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java @@ -848,9 +848,14 @@ private void initParent(MavenProject project, ModelBuilderResult result) { // // At this point the DefaultModelBuildingListener has fired, and it populates the // remote repositories with those found in the pom.xml, along with the existing externally - // defined repositories. + // defined repositories, filtering out duplicates. // - request.getRemoteRepositories().addAll(project.getRemoteArtifactRepositories()); + List repositories = request.getRemoteRepositories(); + Set keys = + repositories.stream().map(ArtifactRepository::getId).collect(Collectors.toSet()); + project.getRemoteArtifactRepositories().stream() + .filter(r -> !keys.contains(r.getId())) + .forEach(repositories::add); Path parentPomFile = parentModel.getPomFile(); if (parentPomFile != null) { project.setParentFile(parentPomFile.toFile());