Подтвердить что ты не робот

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

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

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

Я попытался использовать "*", но это не удалось.

4b9b3361

Ответ 1

Не знаю, используете ли вы в командной строке или в среде IDE, но в основном вам нужен файл suppresions. Если вы вручную редактируете конфигурационный файл 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]*" в основном означает пропустить все), Это образец, который вы ищете, я думаю?

Ответ 2

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

Сначала я добавил тег FileContentHolder в качестве дочернего элемента тега TreeWalker:

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

Затем я добавил параметр SuppressionCommentFilter в файле checks.xml:

<module name="SuppressionCommentFilter"/>

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

// CHECKSTYLE:OFF

Ответ 3

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

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

Ответ 4

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

src/.+java$

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

Ответ 5

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

Ответ 6

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

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

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