diff --git a/rewrite-gradle/src/main/java/org/openrewrite/gradle/plugins/AddSettingsPluginRepository.java b/rewrite-gradle/src/main/java/org/openrewrite/gradle/plugins/AddSettingsPluginRepository.java index 1d602b8aa5e..f264706357d 100644 --- a/rewrite-gradle/src/main/java/org/openrewrite/gradle/plugins/AddSettingsPluginRepository.java +++ b/rewrite-gradle/src/main/java/org/openrewrite/gradle/plugins/AddSettingsPluginRepository.java @@ -197,7 +197,7 @@ private Statement addRepoToRepositoriesBlock(Statement statement, J pluginManage } J.MethodInvocation repoToAdd = extractRepository(pluginManagement); - if (repoAlreadyExists(repos, repoToAdd.getSimpleName())) { + if (url == null && repoAlreadyExists(repos, repoToAdd.getSimpleName())) { return statement; } diff --git a/rewrite-gradle/src/test/java/org/openrewrite/gradle/plugins/AddSettingsPluginRepositoryTest.java b/rewrite-gradle/src/test/java/org/openrewrite/gradle/plugins/AddSettingsPluginRepositoryTest.java index eeb957fe31d..17ed67cbb59 100644 --- a/rewrite-gradle/src/test/java/org/openrewrite/gradle/plugins/AddSettingsPluginRepositoryTest.java +++ b/rewrite-gradle/src/test/java/org/openrewrite/gradle/plugins/AddSettingsPluginRepositoryTest.java @@ -642,6 +642,37 @@ void skipWhenExistsGradlePluginPortalWithOtherReposKtsWithoutTypeAttribution() { ); } + @Test + void addSecondMavenRepoKts() { + rewriteRun( + spec -> spec.recipe(new AddSettingsPluginRepository("maven", "https://repo.spring.io")) + .expectedCyclesThatMakeChanges(1).cycles(3), + settingsGradleKts( + """ + pluginManagement { + repositories { + maven { + url = uri("https://repo.example.com/releases") + } + } + } + """, + """ + pluginManagement { + repositories { + maven { + url = uri("https://repo.example.com/releases") + } + maven { + url = uri("https://repo.spring.io") + } + } + } + """ + ) + ); + } + @Test void addToExistingPluginManagementWithPluginsBlockKts() { rewriteRun(