Dokka - 跳过为默认的 android 包生成 javadoc
Posted
技术标签:
【中文标题】Dokka - 跳过为默认的 android 包生成 javadoc【英文标题】:Dokka - skip generating javadoc for default android packages 【发布时间】:2018-02-16 08:26:23 【问题描述】:我正在尝试使用 Dokka 插件为 android Kotlin 应用程序生成 Javadoc。我将插件添加到我的 gradle 中:
classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.15"
然后我按照项目说明进行了基本配置:
dokka
outputFormat = 'javadoc'
outputDirectory = "$rootDir/docs"
skipEmptyPackages = true
noStdlibLink = true
我使用基本的 gradle 命令生成文档:
[user@linux AppDir]$ bash gradlew dokka
输出没问题,但它包含来自 android 的多个目录或我添加到项目中的插件,例如:
android.R
android.support
com.google
com.crashlytics
.
.
.
etc.
如何跳过这些包?有没有办法只为我的 /app/scr/java 文件夹和我创建的文件生成扩展坞?任何帮助表示赞赏。
【问题讨论】:
【参考方案1】:Dokka 0.9.16 版将包含bugfix to remove generated files from documentation。
在 0.9.15 版本中,以下提交似乎解决了“Suppress output of android.R and other generated stuff in dokka-android”,但显然在使用所需信息创建 suppresedFiles
映射后,它并没有真正用于过滤 sourceSets
。
更新:Dokka 0.9.16 has been released 进行了修复,以及其他改进。
#224 从文档中过滤掉 Android 生成的类
【讨论】:
【参考方案2】:这是一个使用 Dokka 0.9.16 的工作示例:
task dokka(overwrite: true, type: org.jetbrains.dokka.gradle.DokkaAndroidTask)
outputFormat = 'javadoc'
outputDirectory = "$buildDir/docs"
// Do not create index pages for empty packages
skipEmptyPackages = true
//Do not output deprecated members. Applies globally, can be overridden by packageOptions
skipDeprecated = false
//No default documentation link to kotlin-stdlib
noStdlibLink = false
如果您使用 Android,那么类型很重要:org.jetbrains.dokka.gradle.DokkaAndroidTask
不是DokkaTask
,而是DokkaAndroidTask
。
【讨论】:
您还需要使用来自org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.16
存储库的org.jetbrains.dokka-android
插件!我花了很长时间才弄清楚。以上是关于Dokka - 跳过为默认的 android 包生成 javadoc的主要内容,如果未能解决你的问题,请参考以下文章
无法让 dokka 在 gradle/android 项目上生成 kotlin 文档