You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为根项目与子项目配置Dokka并生成完整文档?

解决Dokka多模块文档缺失根项目内容的问题

问题分析

你的根项目包含自有源码和packages.md,但运行dokkaHtmlMultiModule仅生成子项目文档,原因是默认情况下Dokka多模块任务只会自动收集子项目的DokkaTaskPartial任务,根项目的partial任务未被纳入合并范围。


方案1:生成根项目+子项目的合并文档

修改根目录build.gradle,显式将根项目的dokkaHtmlPartial任务纳入多模块合并流程:

allprojects {
    apply plugin: 'org.jetbrains.dokka'

    tasks.withType(DokkaTaskPartial.class).configureEach {
        dokkaSourceSets.configureEach {
            includes.from("packages.md")
            // 可选:显式指定源码根目录(默认已识别,若出现路径问题可添加)
            sourceRoots.from(file("src/main/kotlin"))
        }
    }
}

tasks.withType(DokkaTask.class).configureEach {
    dokkaSourceSets.configureEach {
        documentedVisibilities.set([
            Visibility.PUBLIC,
            Visibility.PRIVATE,
            Visibility.PROTECTED,
            Visibility.INTERNAL,
            Visibility.PACKAGE
        ])
    }
}

// 关键配置:让多模块任务包含根项目的partial任务
tasks.dokkaHtmlMultiModule {
    dependsOn(tasks.dokkaHtmlPartial)
    // 显式指定要合并的模块(根项目+子项目)
    modules.set([
        project.tasks.dokkaHtmlPartial,
        project(":subproject-B").tasks.dokkaHtmlPartial
    ])
}

修改后重新运行./gradlew dokkaHtmlMultiModule,生成的文档会同时包含根项目HelloFromA.kt和子项目HelloFromB.kt的内容。


方案2:生成各自独立的文档

若不需要合并文档,只需分别生成根项目和子项目的独立文档,直接执行对应任务即可:

  • 生成根项目文档:./gradlew dokkaHtml,输出路径为build/dokka/html
  • 生成子项目文档:./gradlew :subproject-B:dokkaHtml,输出路径为subproject-B/build/dokka/html

内容的提问来源于stack exchange,提问作者Ogre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 12:47:39