Skip to content

Commit

Permalink
Add javadoc links in build.gradle and update Github action workflow
Browse files Browse the repository at this point in the history
Introduced a function in build.gradle.kts to add external javadoc links. This increases the quality and completeness of generated javadocs by providing related external references. Also, the Github Actions workflow has been updated to use an 'allJavadocs' task for generating a combined javadocs for all the projects, facilitating easier maintenance and review.
  • Loading branch information
rainbowdashlabs committed Aug 21, 2023
1 parent ecda20d commit 1651405
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/javadocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: Build Javadocs
run: |
echo "Building javadocs with gradle"
./gradlew clean javadoc
./gradlew clean allJavadocs
echo "Moving to javadocs directory:"
cd build/docs/javadoc
echo "Creating .nojekyll to have Github pages deploy html as is:"
Expand Down
24 changes: 24 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,27 @@ dependencies {
api(project(":threading"))
api(project(":updater"))
}

fun applyJavaDocOptions(options: MinimalJavadocOptions) {
val javaDocOptions = options as StandardJavadocDocletOptions
javaDocOptions.links(
"https://javadoc.io/doc/com.google.code.findbugs/jsr305/latest/",
"https://javadoc.io/doc/org.jetbrains/annotations/latest/",
"https://docs.oracle.com/en/java/javase/${java.toolchain.languageVersion.get().asInt()}/docs/api/",
"https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-core/latest/",
"https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-annotations/latest",
"https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-databind/latest",
"https://jd.papermc.io/paper/1.19/"
)
}

tasks {
register<Javadoc>("allJavadocs") {
applyJavaDocOptions(options)

destinationDir = file("${buildDir}/docs/javadoc")
val projects = project.rootProject.allprojects.filter { p -> publicProjects.contains(p.name) }
setSource(projects.map { p -> p.sourceSets.main.get().allJava })
classpath = files(projects.map { p -> p.sourceSets.main.get().compileClasspath })
}
}

0 comments on commit 1651405

Please sign in to comment.