diff --git a/buildSrc/src/main/java/org/springframework/boot/build/KotlinConventions.java b/buildSrc/src/main/java/org/springframework/boot/build/KotlinConventions.java index 2b3a9c48cdd..9975dcfca55 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/KotlinConventions.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/KotlinConventions.java @@ -16,6 +16,7 @@ package org.springframework.boot.build; +import java.net.URI; import java.util.ArrayList; import java.util.List; @@ -23,6 +24,7 @@ import dev.adamko.dokkatoo.DokkatooExtension; import dev.adamko.dokkatoo.formats.DokkatooHtmlPlugin; import org.gradle.api.Project; import org.gradle.api.tasks.SourceSet; +import org.gradle.api.tasks.SourceSetContainer; import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions; import org.jetbrains.kotlin.gradle.tasks.KotlinCompile; @@ -67,9 +69,24 @@ class KotlinConventions { private void configureDokkatoo(Project project) { project.getPlugins().apply(DokkatooHtmlPlugin.class); DokkatooExtension dokkatoo = project.getExtensions().getByType(DokkatooExtension.class); - dokkatoo.getDokkatooSourceSets() - .named(SourceSet.MAIN_SOURCE_SET_NAME) - .configure((spec) -> spec.getSourceRoots().setFrom(project.file("src/main/kotlin"))); + dokkatoo.getDokkatooSourceSets().named(SourceSet.MAIN_SOURCE_SET_NAME).configure((sourceSet) -> { + sourceSet.getSourceRoots().setFrom(project.file("src/main/kotlin")); + sourceSet.getClasspath() + .from(project.getExtensions() + .getByType(SourceSetContainer.class) + .getByName(SourceSet.MAIN_SOURCE_SET_NAME) + .getOutput()); + sourceSet.getExternalDocumentationLinks().create("spring-boot-javadoc", (link) -> { + link.getUrl().set(URI.create("https://docs.spring.io/spring-boot/api/java/")); + link.getPackageListUrl().set(URI.create("https://docs.spring.io/spring-boot/api/java/element-list")); + }); + sourceSet.getExternalDocumentationLinks().create("spring-framework-javadoc", (link) -> { + String url = "https://docs.spring.io/spring-framework/docs/%s/javadoc-api/" + .formatted(project.property("springFrameworkVersion")); + link.getUrl().set(URI.create(url)); + link.getPackageListUrl().set(URI.create(url + "/element-list")); + }); + }); } }