SuppressionCommentFilter 不允许在 Checker 中作为子项”

SuppressionCommentFilter is not allowed as a child in Checker"

错误:无法解析 Checkstyle 规则文件。 在 Checker 中不允许将 SuppressionCommentFilter 作为子项 该文件已被列入 60 年代的黑名单。

注意:我使用的Checkstyle版本是7.1.2。

这是一个看起来完全有效的配置,

<module name="Checker">
  <property name="severity" value="warning" />
  <module name="TreeWalker">
    ...
  </module>
  ...
  <module name="SuppressWarningsFilter" />
  <module name="SuppressionFilter">
    <property name="file" value="${config_loc}/suppressions.xml"/>
  </module>
  <module name="SuppressionCommentFilter">
    <property name="checkC" value="false" />
  </module>
  ...
</module>

请参阅:8.1 版的发行说明

打破向后兼容性:

使 SuppressionCommentFilter 和 SuppressWithNearbyCommentFilter 成为 TreeWalker 的子项。作者:帖木儿 #4714

http://checkstyle.sourceforge.net/releasenotes.html

要修复此错误,请查找或使用“TreeWalker”模块并将有问题的模块移到该模块中。即

  <module name="TreeWalker">
    <!-- Require lines to be indented with tabs -->
    <module name="RegexpSinglelineJava">
      <property name="format" value="^\t* "/>
      <property name="message" value="Indent must use tab characters"/>
      <property name="ignoreComments" value="true"/>
    </module>
  </module>

我通过匹配我正在上传的 Intellij checkstyle version 和 checkstyle jar 文件的版本解决了这个问题:)。我使用了 Intellj 版本 8.1 Check style jar,我正在上传 7.1.2。现在我将两者都更改为 7.1.2,并且可以正常工作。 :)