Dokka 1.8.10无法显示类私有函数,旧方法已弃用求解决方案
Dokka 1.8.10 显示类中私有函数的解决方案
在Dokka 1.8.10版本中,includeNonPublic配置项已被弃用,要继续显示类中的私有函数,需使用documentedVisibilities配置指定需要文档化的可见性集合。
具体修改方案:
- 导入必要的枚举类:确保在build.gradle文件顶部导入可见性枚举:
import org.jetbrains.dokka.DokkaConfiguration.Visibility import org.jetbrains.dokka.gradle.DokkaTask
- 配置可见性集合:在Dokka任务的
dokkaSourceSets配置块中,将documentedVisibilities设置为包含PRIVATE的可见性列表。默认该集合仅包含PUBLIC,你可根据需求添加其他可见性(如PROTECTED、INTERNAL)。
修改后的tasks.dokkaHtml.configure代码示例:
tasks.dokkaHtml.configure { dokkaSourceSets { configureEach { // 显式指定需要文档化的所有可见性,包含私有函数 documentedVisibilities.set(listOf( Visibility.PUBLIC, Visibility.PROTECTED, Visibility.INTERNAL, Visibility.PRIVATE )) skipDeprecated.set(true) reportUndocumented.set(true) noAndroidSdkLink.set(false) } } }
额外说明:
- 若希望所有Dokka任务(如dokkaJavadoc、dokkaGfm)都生效,可将
documentedVisibilities配置放到全局tasks.withType(DokkaTask.class)的dokkaSourceSets.configureEach块中,避免重复配置:
tasks.withType(DokkaTask.class) { moduleName.set(project.name) moduleVersion.set(project.version.toString()) outputDirectory.set(file("build/dokka/$name")) failOnWarning.set(false) suppressObviousFunctions.set(true) suppressInheritedMembers.set(true) offlineMode.set(false) dokkaSourceSets.configureEach { // 全局配置所有Dokka任务的可见性 documentedVisibilities.set(listOf( Visibility.PUBLIC, Visibility.PROTECTED, Visibility.INTERNAL, Visibility.PRIVATE )) perPackageOption { matchingRegex.set(".*internal.*") suppress.set(true) } } }
配置完成后,执行./gradlew dokkaHtml生成的文档即可包含类中的私有函数。
内容的提问来源于stack exchange,提问作者Niklas
相关产品推荐
相关产品推荐

