Как подавить все проверки файла в Checkstyle?

StackOverflow https://stackoverflow.com/questions/1012407

  •  06-07-2019
  •  | 
  •  

Вопрос

Я делаю переопределение для стороннего класса и хочу подавить все проверки для него (поскольку я сохраняю его только до тех пор, пока не будет принято исправление).

Есть ли способ подавить все проверки файла?

Я пробовал использовать «*», но это не помогло.

Это было полезно?

Решение

Не знаю, используете ли вы командную строку или IDE, но вам в основном понадобится файл подавлений.Если вы вручную редактируете файл конфигурации Checkstyle, добавьте в него новый модуль:

<module name="SuppressionFilter">
    <property name="file" value="mysuppressions.xml" />
</module>

Твой mysuppression.xml может быть что-то вроде:

<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
    "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">

<suppressions>
    <suppress files="TheClassToIgnore\.java" checks="[a-zA-Z0-9]*"/>
</suppressions>

Значение для "filesАтрибут " по сути представляет собой регулярное выражение для исходных файлов и значение атрибута "checks" Атрибут является регулярным выражением для того, какие проверки следует пропустить ("[a-zA-Z0-9]*«по сути означает пропустить все).Я думаю, это тот шаблон, который вы ищете?

Другие советы

Мне удалось подавить проверки в файле, добавив тег SuppressionCommentFilter в файл checks.xml:

Сначала я добавил тег FileContentHolder как дочерний элемент тега TreeWalker (этот шаг нет необходим начиная с версии 8.1 com.puppycrawl.tools:checkstyle):

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

Затем я добавил SuppressionCommentFilter в checks.xml (начиная с версии 8.1 com.puppycrawl.tools:checkstyle — в узле «TreeWalker»):

<module name="SuppressionCommentFilter"/>

В каждом файле, проверки которого я хотел подавить, я вставил в первую строку файла следующий комментарий:

// CHECKSTYLE:OFF

Ответ aberrant80 очень помог.С помощью его подсказки — используя сопоставление шаблонов регулярных выражений, я также смог подавить контрольный стиль для всего пакета, добавив его в файл checkstyle-suppressions.xml.Например.чтобы пропустить проверки стиля проверки для всех автоматически сгенерированных Java-файлов в пакете jaxb,

    <suppressions>
        <suppress checks="[a-zA-Z0-9]*" files="[\\/]jaxb[\\/]" />
    </suppressions>

Если вы используете плагин Checkclipse Eclipse для Checkstyle, вы можете включать или исключать шаблоны файлов (включая каталоги), перейдя на вкладку Checkclipse > File Filter в свойствах проекта.Например, мой проект содержит источник и тест каталоги на верхнем уровне.Я хочу, чтобы Checkstyle применялся только к файлам в источник каталог (без учета тест), поэтому я добавил шаблон включения, который выглядит следующим образом:

src/.+java$

Как видите, для спецификации шаблона он использует синтаксис в стиле регулярного выражения.

Ответ @aberrant80 очень вдохновляет, хотя в моем проекте он не сработал.Чтобы подавить любые предупреждения, которые checkstyle ищет в Foo.java, согласно связь, если используется maven:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    ...
        <configuration>
            ...
            <configLocation>checkstyle.xml</configLocation>
            <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
            ...
        </configuration>                
    ...
</plugin>

И в checkstyle-suppressions.xml

<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
    <suppress files="Foo.java" checks="[a-zA-Z0-9]*" />
</suppressions>

Пока самая высокая версия - 1.1 (1.2 не существует).

Существует возможность игнорировать файлы, защищенные от записи.Или файлы в пакете.

Если вы не хотите, чтобы группа файлов в проекте проверялась, вы можете отфильтровать эти файлы, чтобы они не проверялись, создав фильтр файлов

Фильтр файлов использует регулярное выражение, чтобы определить, какие файлы следует исключить.Регулярное выражение работает с полным именем файла — поэтому вы также можете исключить целые папки.В этом случае вы можете исключить весь пакет, если хотите.

Если вы немного погуглите, вы, вероятно, сможете найти файлы свойств конфигурации Checkstyle, в которых есть примеры того, что вы ищете.Я бы посоветовал после того, как вы это сделаете, сохранить его как своего рода шаблон, чтобы вы могли обращаться к нему в будущих ситуациях.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top