我使用Gradle Dokka插件版本0.9.16-eap-1为一些Kotlin代码生成文档。
我没有破坏窗口类型的人,因此有点沮丧的是,插件为类生成了大量的消息,我没有明确地记录了一个被覆盖的方法,该方法已在基类中充分记录,例如:
package com.foo
/**
* A silly class to demonstrate silliness.
*/
class Bar : java.io.InputStream() {
override fun read() = -1
override fun toString() = "BAZ!"
}
对于这类Dokka的训斥:
No documentation for com.foo.Bar$read() (Bar.kt:6)
No documentation for com.foo.Bar$toString() (Bar.kt:7)
这有点单调乏味,因为我不想用复制粘贴文档冗余地冗余地记录所有内容。
查看Dokka README.md,我看到的唯一相关配置选项是:
dokka {
...
// Emit warnings about not documented members. Applies globally, also can be overridden by packageOptions
reportNotDocumented = true
...
// Allows to customize documentation generation options on a per-package basis
// Repeat for multiple packageOptions
packageOptions {
...
reportUndocumented = true // Emit warnings about not documented members
...
}
}
但我不想压制有关无证件的警告。那也差一点。所有我想做的就是假设我没有重复自己不重复自己的假设,禁止对未记载的override
人提出警告。
是否有人知道是否可以选择仅为override fun
关闭警告?
答案 0 :(得分:0)
对于您的具体案例,请使用 @supress
class MyAndroidActivity: Activity {
/** @suppress */
override fun onCreate(savedInstanceState: Bundle?) {
...
}
}
这样,您将完全从文档中排除被覆盖的函数。
但是,如果要在文档中保留对API调用的引用,只需在元素附近添加一个空的单行docstring(它将禁用警告):
class MyAndroidActivity: Activity {
/***/
override fun onCreate(savedInstanceState: Bundle?) {
...
}
}
答案 1 :(得分:0)
可能您需要在下面添加:
// No default documentation link to kotlin-stdlib
noStdlibLink = false
最终可能像:
dokka {
// refer https://github.com/Kotlin/dokka#output-formats
outputFormat = 'html'
outputDirectory = "$buildDir/javadoc"
// Do not create index pages for empty packages
skipEmptyPackages = true
// No default documentation link to kotlin-stdlib
noStdlibLink = false
}
noStdlibLink = false 将通过提供指向 kotlin-stdlib 的链接来生成继承函数的文档。您可以参考更多here。
我使用了dokka版本 0.9.17 。
输出将是:
任务:app:dokka截止日期
BUILD SUCCESSFUL in 1m 13s
104 actionable tasks: 35 executed, 69 up-to-date
5:53:38 PM: Task execution finished 'dokka'.