From 86f09fb9527e35a08379c478ff2025a32d1f983e Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Thu, 17 Apr 2025 18:58:28 +0700 Subject: [PATCH 1/2] Avoid eager creation of aggregatedJavadoc task See gh-45223 Signed-off-by: Tran Ngoc Nhan --- .../spring-boot-docs/build.gradle | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle index 27fa8507bfe..c910d2d07bb 100644 --- a/spring-boot-project/spring-boot-docs/build.gradle +++ b/spring-boot-project/spring-boot-docs/build.gradle @@ -201,15 +201,16 @@ dokkatoo { moduleName.set("Spring Boot Kotlin API") } -task aggregatedJavadoc(type: Javadoc) { - project.rootProject.gradle.projectsEvaluated { - Set publishedProjects = rootProject.subprojects.findAll { it != project } - .findAll { it.plugins.hasPlugin(JavaPlugin) && it.plugins.hasPlugin(MavenPublishPlugin) } - .findAll { !it.path.contains(":spring-boot-tools:") || - it.path.contains(":spring-boot-tools:spring-boot-buildpack-platform") || - it.path.contains(":spring-boot-tools:spring-boot-loader-tools") || - (it.path.contains(":spring-boot-tools:spring-boot-loader") && !it.path.contains("spring-boot-loader-classic"))} - .findAll { !it.name.startsWith('spring-boot-starter') } +tasks.register('aggregatedJavadoc', Javadoc) +project.rootProject.gradle.projectsEvaluated { + Set publishedProjects = rootProject.subprojects.findAll { it != project } + .findAll { it.plugins.hasPlugin(JavaPlugin) && it.plugins.hasPlugin(MavenPublishPlugin) } + .findAll { !it.path.contains(":spring-boot-tools:") || + it.path.contains(":spring-boot-tools:spring-boot-buildpack-platform") || + it.path.contains(":spring-boot-tools:spring-boot-loader-tools") || + (it.path.contains(":spring-boot-tools:spring-boot-loader") && !it.path.contains("spring-boot-loader-classic"))} + .findAll { !it.name.startsWith('spring-boot-starter') } + tasks.named('aggregatedJavadoc', Javadoc).configure { dependsOn publishedProjects.javadoc source publishedProjects.javadoc.source classpath = project.files(publishedProjects.javadoc.classpath) From 21a9f4bbc5d9e54e0a3abfe54cf2394a912d9ddc Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 17 Apr 2025 14:11:14 +0100 Subject: [PATCH 2/2] Polish "Avoid eager creation of aggregatedJavadoc task" See gh-45223 --- .../spring-boot-docs/build.gradle | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle index c910d2d07bb..5cc419d239b 100644 --- a/spring-boot-project/spring-boot-docs/build.gradle +++ b/spring-boot-project/spring-boot-docs/build.gradle @@ -201,7 +201,20 @@ dokkatoo { moduleName.set("Spring Boot Kotlin API") } -tasks.register('aggregatedJavadoc', Javadoc) +def aggregatedJavadoc = tasks.register('aggregatedJavadoc', Javadoc) { + destinationDir = project.file(project.layout.buildDirectory.dir("docs/javadoc")) + options { + author = true + docTitle = "Spring Boot ${project.version} API" + memberLevel = "protected" + outputLevel = "quiet" + splitIndex = true + use = true + windowTitle = "Spring Boot ${project.version} API" + } + doFirst(new ConfigureJavadocLinks(configurations.resolvedBom, ["Spring Framework", "Spring Security", "Tomcat"])) +} + project.rootProject.gradle.projectsEvaluated { Set publishedProjects = rootProject.subprojects.findAll { it != project } .findAll { it.plugins.hasPlugin(JavaPlugin) && it.plugins.hasPlugin(MavenPublishPlugin) } @@ -210,21 +223,10 @@ project.rootProject.gradle.projectsEvaluated { it.path.contains(":spring-boot-tools:spring-boot-loader-tools") || (it.path.contains(":spring-boot-tools:spring-boot-loader") && !it.path.contains("spring-boot-loader-classic"))} .findAll { !it.name.startsWith('spring-boot-starter') } - tasks.named('aggregatedJavadoc', Javadoc).configure { + aggregatedJavadoc.configure { dependsOn publishedProjects.javadoc source publishedProjects.javadoc.source classpath = project.files(publishedProjects.javadoc.classpath) - destinationDir = project.file(project.layout.buildDirectory.dir("docs/javadoc")) - options { - author = true - docTitle = "Spring Boot ${project.version} API" - memberLevel = "protected" - outputLevel = "quiet" - splitIndex = true - use = true - windowTitle = "Spring Boot ${project.version} API" - } - doFirst(new ConfigureJavadocLinks(configurations.resolvedBom, ["Spring Framework", "Spring Security", "Tomcat"])) } }