You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Detekt排除设置未生效:如何排除samples文件夹?

解决Detekt无法排除samples文件夹的问题

你的配置失效的核心原因是:规则级别的includes范围覆盖了samples文件夹,且excludes的优先级或路径匹配未生效。以下是几种可行的解决方法:

方法1:全局排除(最可靠)

在Detekt配置文件的顶层detekt节点下设置全局排除,这样所有规则都会跳过samples文件夹,无需在每个规则里重复配置:

detekt:
  # 保留其他全局配置项
  excludes:
    - '**/rd/compose/samples/**'

# 规则配置可保留includes,无需再单独写excludes
UndocumentedPublicClass:
  active: true
  includes: &composeComponent
    - '**/rd/compose/**'
UndocumentedPublicFunction:
  active: true
  includes: *composeComponent
OutdatedDocumentation:
  active: true
  includes: *composeComponent
  allowParamOnConstructorProperties: true

方法2:修正规则级的路径匹配

如果必须在规则级别设置排除,调整路径写法确保准确匹配,同时规避includes与excludes的范围冲突:

  • 将excludes路径改为精确到Kotlin文件的匹配:'**/rd/compose/samples/**/*.kt'
  • 或者修改includes为否定samples的模式(部分Detekt版本支持):'**/rd/compose/**/!samples/**'

修改后的规则示例:

UndocumentedPublicClass:
  active: true
  excludes: &samples
    - '**/rd/compose/samples/**/*.kt'
  includes: &composeComponent
    - '**/rd/compose/**'
# 其他规则配置同理

方法3:检查路径匹配准确性

  • 确认项目中samples文件夹的实际路径和配置的**/rd/compose/samples/**完全一致,排查是否存在大小写差异、嵌套层级不符的情况
  • 避免includes的范围过于宽泛导致excludes无法精准覆盖,比如includes如果包含了samples的父目录,excludes必须明确指向samples下的所有文件

内容的提问来源于stack exchange,提问作者Rulogarcillan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 20:25:21