4

我正在使用 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

4

2 回答 2

3

对于您的特定情况,请使用@suppress

class MyAndroidActivity: Activity {

    /** @suppress */
    override fun onCreate(savedInstanceState: Bundle?) {
        ...
    }

}

这样,您将从文档中完全排除被覆盖的函数。

但是,如果您想在文档中保留对 API 调用的引用,只需在元素附近添加一个空的单行文档字符串(它将禁用警告):

class MyAndroidActivity: Activity {

    /***/
    override fun onCreate(savedInstanceState: Bundle?) {
        ...
    }

}
于 2018-01-14T18:30:31.833 回答
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的链接来生成继承函数的文档。你可以在这里参考更多。

我使用了 dokka 版本0.9.17

输出将是:

任务:app:dokka UP-TO-DATE

BUILD SUCCESSFUL in 1m 13s
104 actionable tasks: 35 executed, 69 up-to-date
5:53:38 PM: Task execution finished 'dokka'.
于 2019-01-21T11:54:06.777 回答