Checkstyle SuppressionCommentFilter не игнорирует указанное правило

У меня есть 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

Однако рассматриваемая строка не игнорируется как часть стиля проверки.

Я указал следующее в 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

person digiarnie    schedule 23.04.2011    source источник
comment
что происходит, когда вы делаете mvn checkstyle:check checkstyle:checkstyle ?   -  person sbridges    schedule 23.04.2011


Ответы (2)


Настроили ли вы FileContentsHolder как задокументировано?

<module name="TreeWalker">
    ...
    <module name="FileContentsHolder"/>
    ...
</module>
person Raghuram    schedule 23.04.2011
comment
Документированная ссылка больше не имеет (если она когда-либо была) ссылки на FileContentsHolder. - person ChuckB; 23.06.2020

У меня это тоже недавно не работало, но принятый ответ устарел, поскольку checkstyle 8.2< /а>:

удалить модуль FileContentsHolder, поскольку объект FileContents доступен для фильтров в TreeWalker в событии TreeWalkerAudit.

Однако версия 8.6 добавила SuppressWithPlainTextCommentFilter:

новый фильтр Checker SuppressWithPlainTextCommentFilter, аналогичный фильтру SuppressionCommentFilter в Treewalker.

Вместо 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
person dyslexit    schedule 29.06.2021