Link to Java APIs from Kotlin API documentation

Closes gh-40694
This commit is contained in:
Andy Wilkinson 2024-05-11 08:44:06 +01:00
parent 53e1c7ed7d
commit 0934b68c6c

View File

@ -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"));
});
});
}
}