From 9c188bc7323d79a2ce2f97f7139ab4c83088d860 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 28 Jan 2026 21:51:09 -0800 Subject: [PATCH] Refine conventions to exclude checking of generated source Closes gh-49153 --- .../springframework/boot/build/JavaConventions.java | 13 +++++++++++++ core/spring-boot/build.gradle | 3 --- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java b/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java index 223a492a049..eff1d527d82 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java @@ -42,6 +42,7 @@ import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.ConfigurationContainer; import org.gradle.api.artifacts.Dependency; import org.gradle.api.artifacts.DependencySet; +import org.gradle.api.file.FileTreeElement; import org.gradle.api.plugins.JavaBasePlugin; import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.plugins.JavaPluginExtension; @@ -50,6 +51,7 @@ import org.gradle.api.plugins.quality.CheckstyleExtension; import org.gradle.api.plugins.quality.CheckstylePlugin; import org.gradle.api.tasks.SourceSet; import org.gradle.api.tasks.SourceSetContainer; +import org.gradle.api.tasks.SourceTask; import org.gradle.api.tasks.TaskProvider; import org.gradle.api.tasks.bundling.Jar; import org.gradle.api.tasks.compile.JavaCompile; @@ -298,6 +300,17 @@ class JavaConventions { .add(project.getDependencies().create("com.puppycrawl.tools:checkstyle:" + checkstyle.getToolVersion())); checkstyleDependencies .add(project.getDependencies().create("io.spring.javaformat:spring-javaformat-checkstyle:" + version)); + project.getTasks().withType(CheckFormat.class, this::excludeGeneratedSources); + project.getTasks().withType(Checkstyle.class, this::excludeGeneratedSources); + } + + private SourceTask excludeGeneratedSources(SourceTask task) { + return task.exclude(this::isGeneratedSource); + } + + private boolean isGeneratedSource(FileTreeElement candidate) { + String path = candidate.getFile().getPath(); + return path.contains("/generated/sources/") || path.contains("/generated-source/"); } private void configureDependencyManagement(Project project) { diff --git a/core/spring-boot/build.gradle b/core/spring-boot/build.gradle index 42d13c58b77..b094d7ac387 100644 --- a/core/spring-boot/build.gradle +++ b/core/spring-boot/build.gradle @@ -82,9 +82,6 @@ def syncJavaTemplates = tasks.register("syncJavaTemplates", Sync) { } tasks.named("checkFormatMain") { - def generatedSources = fileTree("build/generated-sources/main") - // Exclude source generated from the templates as expand(properties) changes line endings on Windows - exclude { candidate -> generatedSources.contains(candidate.file) } // Add the templates to check that the input is correctly formatted source(fileTree("src/main/javaTemplates")) }