diff --git a/convention/src/main/kotlin/io/gitlab/jfronny/scripts/JavadocExt.kt b/convention/src/main/kotlin/io/gitlab/jfronny/scripts/JavadocExt.kt new file mode 100644 index 0000000..8428b15 --- /dev/null +++ b/convention/src/main/kotlin/io/gitlab/jfronny/scripts/JavadocExt.kt @@ -0,0 +1,16 @@ +package io.gitlab.jfronny.scripts + +import org.gradle.api.Project +import org.gradle.api.tasks.javadoc.Javadoc +import org.gradle.external.javadoc.StandardJavadocDocletOptions +import org.gradle.kotlin.dsl.named + +val Javadoc.opts: StandardJavadocDocletOptions + get() = options as? StandardJavadocDocletOptions + ?: throw TypeCastException("Unexpected javadoc options type") + +fun Javadoc.linksOffline(url: String, project: Project) { + val task = project.tasks.named("javadoc").get() + opts.linksOffline(url, task.destinationDir.toString()) + dependsOn(task) +} \ No newline at end of file diff --git a/convention/src/main/kotlin/jf.umldoc.gradle.kts b/convention/src/main/kotlin/jf.umldoc.gradle.kts new file mode 100644 index 0000000..0afa91d --- /dev/null +++ b/convention/src/main/kotlin/jf.umldoc.gradle.kts @@ -0,0 +1,24 @@ +import io.gitlab.jfronny.scripts.*; + +plugins { + `java-library` +} + +val umldoc by configurations.creating + +dependencies { + umldoc("nl.talsmasoftware:umldoclet:2.1.0") + umldoc("org.jdrupes.taglets:plantuml-taglet:2.0.1") +} + +tasks.javadoc { + source = sourceSets.main.get().allJava + opts.docletpath = umldoc.files.toList() + opts.doclet = "nl.talsmasoftware.umldoclet.UMLDoclet" + opts.tagletPath = umldoc.files.toList() + opts.taglets("org.jdrupes.taglets.plantUml.PlantUml", "org.jdrupes.taglets.plantUml.StartUml", "org.jdrupes.taglets.plantUml.EndUml") +} + +java { + withJavadocJar() +} \ No newline at end of file