Skip to content

Commit 0934b68

Browse files
committed
Link to Java APIs from Kotlin API documentation
Closes gh-40694
1 parent 53e1c7e commit 0934b68

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

buildSrc/src/main/java/org/springframework/boot/build/KotlinConventions.java

+20-3
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@
1616

1717
package org.springframework.boot.build;
1818

19+
import java.net.URI;
1920
import java.util.ArrayList;
2021
import java.util.List;
2122

2223
import dev.adamko.dokkatoo.DokkatooExtension;
2324
import dev.adamko.dokkatoo.formats.DokkatooHtmlPlugin;
2425
import org.gradle.api.Project;
2526
import org.gradle.api.tasks.SourceSet;
27+
import org.gradle.api.tasks.SourceSetContainer;
2628
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions;
2729
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile;
2830

@@ -67,9 +69,24 @@ private void configure(KotlinCompile compile) {
6769
private void configureDokkatoo(Project project) {
6870
project.getPlugins().apply(DokkatooHtmlPlugin.class);
6971
DokkatooExtension dokkatoo = project.getExtensions().getByType(DokkatooExtension.class);
70-
dokkatoo.getDokkatooSourceSets()
71-
.named(SourceSet.MAIN_SOURCE_SET_NAME)
72-
.configure((spec) -> spec.getSourceRoots().setFrom(project.file("src/main/kotlin")));
72+
dokkatoo.getDokkatooSourceSets().named(SourceSet.MAIN_SOURCE_SET_NAME).configure((sourceSet) -> {
73+
sourceSet.getSourceRoots().setFrom(project.file("src/main/kotlin"));
74+
sourceSet.getClasspath()
75+
.from(project.getExtensions()
76+
.getByType(SourceSetContainer.class)
77+
.getByName(SourceSet.MAIN_SOURCE_SET_NAME)
78+
.getOutput());
79+
sourceSet.getExternalDocumentationLinks().create("spring-boot-javadoc", (link) -> {
80+
link.getUrl().set(URI.create("https://docs.spring.io/spring-boot/api/java/"));
81+
link.getPackageListUrl().set(URI.create("https://docs.spring.io/spring-boot/api/java/element-list"));
82+
});
83+
sourceSet.getExternalDocumentationLinks().create("spring-framework-javadoc", (link) -> {
84+
String url = "https://docs.spring.io/spring-framework/docs/%s/javadoc-api/"
85+
.formatted(project.property("springFrameworkVersion"));
86+
link.getUrl().set(URI.create(url));
87+
link.getPackageListUrl().set(URI.create(url + "/element-list"));
88+
});
89+
});
7390
}
7491

7592
}

0 commit comments

Comments
 (0)