如何使用Dokka排除指定包生成API文档
解决Dokka排除指定包生成文档的问题
针对你的需求(排除abc包,仅保留xyz包的API文档),可以通过以下两种方式调整Dokka配置:
方式一:直接抑制abc包
修改app.gradle中的dokkaHtml任务配置,使用精确匹配的正则表达式定位abc包并抑制:
tasks.dokkaHtml.configure { dokkaSourceSets { // 针对main源码集配置(避免影响test等其他源码集) main { perPackageOption { // 精确匹配包名完全为"abc"的包,若要包含其子包则改为 "^abc\\..*" matchingRegex.set("^abc$") suppress.set(true) } } } }
方式二:默认抑制所有包,仅允许xyz包
这种方式更严谨,适合需要精准控制仅保留特定包的场景:
tasks.dokkaHtml.configure { dokkaSourceSets { main { // 先默认抑制所有包 perPackageOption { matchingRegex.set(".*") suppress.set(true) } // 再允许xyz包(包含子包则用 "^xyz\\..*") perPackageOption { matchingRegex.set("^xyz$") suppress.set(false) } } } }
你之前配置未生效的原因
- 正则匹配不精确:之前用
matchingRegex.set("abc")会匹配所有包含abc字符串的包(比如com.abc或xyzabc),而非精确匹配包名abc,导致规则未正确命中目标包。 - 未指定源码集:使用
configureEach会对所有源码集生效,可能干扰其他非目标源码集的配置,直接指定main源码集更精准。
执行./gradlew dokkaHtml重新生成文档即可生效。
内容的提问来源于stack exchange,提问作者Noor
相关产品推荐
相关产品推荐

