diff --git a/buildSrc/src/main/java/org/springframework/boot/build/ConventionsPlugin.java b/buildSrc/src/main/java/org/springframework/boot/build/ConventionsPlugin.java index 474a93e5c4fd..5d3850a0126f 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/ConventionsPlugin.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/ConventionsPlugin.java @@ -50,7 +50,7 @@ public void apply(Project project) { new KotlinConventions().apply(project); new WarConventions().apply(project); new EclipseConventions().apply(project); - RepoistoryTransformersExtension.apply(project); + RepositoryTransformersExtension.apply(project); } } diff --git a/buildSrc/src/main/java/org/springframework/boot/build/RepoistoryTransformersExtension.java b/buildSrc/src/main/java/org/springframework/boot/build/RepositoryTransformersExtension.java similarity index 69% rename from buildSrc/src/main/java/org/springframework/boot/build/RepoistoryTransformersExtension.java rename to buildSrc/src/main/java/org/springframework/boot/build/RepositoryTransformersExtension.java index 72b698f83fb7..982594f42661 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/RepoistoryTransformersExtension.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/RepositoryTransformersExtension.java @@ -23,18 +23,20 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository; /** - * Extension to add {@code springRepoistoryTransformers} utility methods. + * Extension to add {@code springRepositoryTransformers} utility methods. * * @author Phillip Webb */ -public class RepoistoryTransformersExtension { +public class RepositoryTransformersExtension { private static final String MARKER = "{spring.mavenRepositories}"; + private static final String MARKER_PLUGIN = "{spring.mavenPluginRepositories}"; + private final Project project; @Inject - public RepoistoryTransformersExtension(Project project) { + public RepositoryTransformersExtension(Project project) { this.project = project; } @@ -65,24 +67,32 @@ public Transformer mavenSettings() { private String transformMavenSettings(String line) { if (line.contains(MARKER)) { - StringBuilder result = new StringBuilder(); - String indent = getIndent(line); - this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> { - String name = repository.getName(); - if (name.startsWith("spring-")) { - result.append(!result.isEmpty() ? "\n" : ""); - result.append(mavenRepositoryXml(indent, repository)); - } - }); - return result.toString(); + return transformMarker(line, false); + } + if (line.contains(MARKER_PLUGIN)) { + return transformMarker(line, true); } return line; } - private String mavenRepositoryXml(String indent, MavenArtifactRepository repository) { + private String transformMarker(String line, boolean pluginRepository) { + StringBuilder result = new StringBuilder(); + String indent = getIndent(line); + this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> { + String name = repository.getName(); + if (name.startsWith("spring-")) { + result.append(!result.isEmpty() ? "\n" : ""); + result.append(mavenRepositoryXml(indent, repository, pluginRepository)); + } + }); + return result.toString(); + } + + private String mavenRepositoryXml(String indent, MavenArtifactRepository repository, boolean pluginRepository) { + String rootTag = pluginRepository ? "pluginRepository" : "repository"; boolean snapshots = repository.getName().endsWith("-snapshot"); StringBuilder xml = new StringBuilder(); - xml.append("%s%n".formatted(indent)); + xml.append("%s<%s>%n".formatted(indent, rootTag)); xml.append("%s\t%s%n".formatted(indent, repository.getName())); xml.append("%s\t%s%n".formatted(indent, repository.getUrl())); xml.append("%s\t%n".formatted(indent)); @@ -91,7 +101,7 @@ private String mavenRepositoryXml(String indent, MavenArtifactRepository reposit xml.append("%s\t%n".formatted(indent)); xml.append("%s\t\t%s%n".formatted(indent, snapshots)); xml.append("%s\t%n".formatted(indent)); - xml.append("%s".formatted(indent)); + xml.append("%s".formatted(indent, rootTag)); return xml.toString(); } @@ -100,7 +110,7 @@ private String getIndent(String line) { } static void apply(Project project) { - project.getExtensions().create("springRepoistoryTransformers", RepoistoryTransformersExtension.class, project); + project.getExtensions().create("springRepositoryTransformers", RepositoryTransformersExtension.class, project); } } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-antlib/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-antlib/build.gradle index 6de24ffc04c0..f59b35f355b1 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-antlib/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-antlib/build.gradle @@ -28,7 +28,7 @@ dependencies { task syncIntegrationTestSources(type: Sync) { destinationDir file("${buildDir}/it") from file("src/it") - filter(springRepoistoryTransformers.ant()) + filter(springRepositoryTransformers.ant()) } processResources { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle index 576e487316a6..0aabdb7f1f3d 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle @@ -102,7 +102,7 @@ syncDocumentationSourceForAsciidoctor { task copySettingsXml(type: Copy) { from file("src/intTest/projects/settings.xml") into "${buildDir}/generated-resources/settings" - filter(springRepoistoryTransformers.mavenSettings()) + filter(springRepositoryTransformers.mavenSettings()) } sourceSets { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/settings.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/settings.xml index 500915763c48..527bb28dd210 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/settings.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/settings.xml @@ -31,7 +31,7 @@ true - + diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-ant/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-ant/build.gradle index dc11df6ccdae..5e1fd73fd422 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-ant/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-ant/build.gradle @@ -50,7 +50,7 @@ task syncAntSources(type: Sync) { destinationDir file("${buildDir}/ant") from project.layout.projectDirectory include "*.xml" - filter(springRepoistoryTransformers.ant()) + filter(springRepositoryTransformers.ant()) } task antRun(type: JavaExec) {