如何为根项目与子项目配置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
相关产品推荐
相关产品推荐

