Checkstyle SuppressionCommentFilter不忽略指定的规则

时间:2011-04-23 00:05:47

标签: java maven checkstyle

我有一个看起来像这样的checkstyle.xml:

<module name="Checker">
    ....

    <module name="SuppressionCommentFilter">
        <property name="offCommentFormat" value="CSOFF\: ([\w\|]+)"/>
        <property name="onCommentFormat" value="CSON\: ([\w\|]+)"/>
        <property name="checkFormat" value="$1"/>
    </module>

    <module name="TreeWalker">
        <module name="LineLength">
            <property name="max" value="200"/>
        </module>
        ....
    </module>
</module>

在我的一个课程中,我有一个超过200个字符的行,并在其周围添加以下内容:

// CSOFF: LineLength
...
// CSON: LineLength

然而,有问题的行不会被视为checkstyle的一部分。

我在pom.xml中指定了以下内容:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <configLocation>checkstyle.xml</configLocation>
            </configuration>
        </plugin>
    </plugins>
</build>

并执行此操作:

mvn checkstyle:checkstyle

2 个答案:

答案 0 :(得分:29)

您是否已将FileContentsHolder配置为documented

<module name="TreeWalker">
    ...
    <module name="FileContentsHolder"/>
    ...
</module>

答案 1 :(得分:0)

最近这对我也不起作用,但自 checkstyle 8.2 以来接受的答案已过时:

<块引用>

删除 FileContentsHolder 模块,因为 FileContents 对象可用于 TreeWalkerAudit 事件中 TreeWalker 上的过滤器。

但是 version 8.6 添加了 SuppressWithPlainTextCommentFilter

<块引用>

新的 Checker 过滤器 SuppressWithPlainTextCommentFilter,类似于 Treewalker 的 SuppressionCommentFilter。

我没有使用 SuppressionCommentFilter,而是使用了上面的 SuppressWithPlainTextCommentFilter,一切都开始工作了。

示例:

  <module name="TreeWalker">
    ...
  </module>
  <module name="SuppressWithPlainTextCommentFilter">
    <property name="offCommentFormat" value="CSOFF: ALL"/>
    <property name="onCommentFormat" value="CSON: ALL"/>
  </module>
  <module name="SuppressWithPlainTextCommentFilter">
    <property name="offCommentFormat" value="CSOFF\: ([\w\|]+)"/>
    <property name="onCommentFormat" value="CSON\: ([\w\|]+)"/>
    <property name="checkFormat" value="$1"/>
  </module>

现在我可以了

public static final int lowerCaseConstant; // CSOFF: ConstantNameCheck
public final static int MultipleERRORS;; // CSOFF: ALL