diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java index 5a5735a7922e..e3091e3b6d1a 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java @@ -510,6 +510,7 @@ public void mergeRepositories(Model model, boolean replace) { Model interpolatedModel = interpolateModel( Model.newBuilder() .pomFile(model.getPomFile()) + .properties(model.getProperties()) .repositories(model.getRepositories()) .build(), request, diff --git a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelBuilderTest.java b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelBuilderTest.java index 2b012185c4bf..a35835d128b3 100644 --- a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelBuilderTest.java +++ b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelBuilderTest.java @@ -92,6 +92,7 @@ public void testMergeRepositories() throws Exception { assertEquals(1, repositories.size()); // central Model model = Model.newBuilder() + .properties(Map.of("thirdParentRepo", "https://third.repo")) .repositories(Arrays.asList( Repository.newBuilder() .id("first") @@ -100,18 +101,25 @@ public void testMergeRepositories() throws Exception { Repository.newBuilder() .id("second") .url("${secondParentRepo}") + .build(), + Repository.newBuilder() + .id("third") + .url("${thirdParentRepo}") .build())) .build(); + state.mergeRepositories(model, false); // after merge repositories = (List) repositoriesField.get(state); - assertEquals(3, repositories.size()); + assertEquals(4, repositories.size()); assertEquals("first", repositories.get(0).getId()); - assertEquals("https://some.repo", repositories.get(0).getUrl()); // interpolated + assertEquals("https://some.repo", repositories.get(0).getUrl()); // interpolated (user properties) assertEquals("second", repositories.get(1).getId()); assertEquals("${secondParentRepo}", repositories.get(1).getUrl()); // un-interpolated (no source) - assertEquals("central", repositories.get(2).getId()); // default + assertEquals("third", repositories.get(2).getId()); + assertEquals("https://third.repo", repositories.get(2).getUrl()); // interpolated (own model properties) + assertEquals("central", repositories.get(3).getId()); // default } private Path getPom(String name) {