Как подавить все проверки файла в Checkstyle?
-
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, в которых есть примеры того, что вы ищете.Я бы посоветовал после того, как вы это сделаете, сохранить его как своего рода шаблон, чтобы вы могли обращаться к нему в будущих ситуациях.