Checkstyle配置报错:SuppressionCommentFilter不可作为Checker子模块
解决Checkstyle的“SuppressionCommentFilter is not allowed as a child in Checker”错误
错误原因
SuppressionCommentFilter是用于通过源码注释过滤检查的模块,必须归属在TreeWalker模块下(负责源码语法树遍历的核心模块),不能直接作为根模块Checker的子节点——这是Checkstyle的模块层级规则硬性要求。
修复步骤
- 打开你的Checkstyle XML配置文件
- 找到直接嵌套在
<module name="Checker">标签内的<module name="SuppressionCommentFilter"/>节点 - 将该节点移动到
<module name="TreeWalker">标签内部
错误配置示例
<module name="Checker"> <!-- 错误位置:SuppressionCommentFilter直接挂载在Checker下 --> <module name="SuppressionCommentFilter"/> <module name="TreeWalker"> <!-- 其他检查规则模块 --> </module> </module>
正确配置示例
<module name="Checker"> <module name="TreeWalker"> <!-- 正确位置:SuppressionCommentFilter归属在TreeWalker下 --> <module name="SuppressionCommentFilter"/> <!-- 其他检查规则模块 --> </module> </module>
额外说明
你的环境版本(Gradle 7.6.1、Kotlin 1.7.10、Checkstyle 8.45.1)完全适配这个调整,无需修改依赖版本。调整后重新执行./gradlew checkstyleMain即可验证修复效果。
内容的提问来源于stack exchange,提问作者iam.Carrot
相关产品推荐
相关产品推荐

