Kotlin Gradle DSLを使ったDokkaでマルチモジュールプロジェクトをドキュメント化


Kotlin Gradle DSLを使ったDokkaでマルチモジュールプロジェクトをドキュメント化する

タイトル通りです。

環境

OS: Mac OS X 11.4 aarch64
CPU: Apple M1
Java: OpenJDK Runtime Environment Zulu16.30+19-CA (build 16.0.1+9)
Gradle: Gradle 7.0
Dokka: 1.5.0

build.gradle.kts

Using the Gradle plugin #Multiplatform - Dokka

Multi-module projects¶

For documenting Gradle multi-module projects, you can use dokka${format}Multimodule tasks.

tasks.dokkaHtmlMultiModule.configure {
outputDirectory.set(buildDir.resolve("dokkaCustomMultiModuleOutput"))
documentationFileName.set("README.md")
}
DokkaMultiModule depends on all Dokka tasks in the subprojects, runs them, and creates a toplevel page (based on the documentationFile) with links to all generated (sub)documentations

と書いてあるとおりに、dokka${format}MutliModuleタスクを変更します。
ModuleのMが小文字になっているのは恐らくタイポです。正しくはMultiModuleです。

サブプロジェクト全てにDokkaのプラグインを適用する必要があります。

ドキュメントをHTMLで出力する例です。

build.gradle.kts
group = "com.uramnoil"
version = "0.0.1"

buildscript {
    repositories {
        mavenCentral()
    }
}

plugins {
    id("org.jetbrains.dokka") version "1.5.0"
}

allprojects {
    repositories {
        mavenCentral()
    }
}

subprojects {
    plugins.apply("org.jetbrains.dokka")
}

tasks.getByName<org.jetbrains.dokka.gradle.DokkaMultiModuleTask>("dokkaHtmlMultiModule") {
    outputDirectory.set(buildDir.resolve("dokkaHtmlMultiModuleOutput"))
}

subprojectsブロックでサブプロジェクト全てにdokkaプラグインを適用した後、
dokkaHtmlMultiModuleタスクの設定を変更します。

結果

./gradlew dokkaHtmlMultiModuelを実行すると、
dokkaHtmlMultiModuelタスクで設定した出力フォルダにドキュメントが生成されます。

このプロジェクトでドキュメントを生成すると、トップページが以下の画像のようになります。