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

Checkstyle - Исключить папку

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

Я использую eclipse-cs для отображения своих нарушений.

Я добавил фильтр suppression в мой xml:

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

my suppressions.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="\*generated-sources\*\*\.\*" checks="[a-zA-Z0-9]*"/>
</suppressions>

Но это не работает. есть идеи?

4b9b3361

Ответ 1

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

это работает :)

Ответ 2

Кроме ответа от Philipp, мне пришлось использовать абсолютный путь (:-() для файла подавления:

<module name="SuppressionFilter">
    <property name="file" value="/Users/xxx/workspace/suppressions.xml"/>
</module>

Похоже, что плагин Checkstyle не использует домашний каталог проекта.

(по крайней мере, под затмением luna/Mac OS X)

Ответ 3

Как указал Томас Уэлш в своем ответе, существует проблема с использованием относительного пути к XML файлу подавления.

Для сборок Gradle этот гистограмма предлагает обходной путь:

в build.gradle:

checkstyle {
    // use one common config file for all subprojects
    configFile = project(':').file('config/checkstyle/checkstyle.xml')
    configProperties = [ "suppressionFile" : project(':').file('config/checkstyle/suppressions.xml')]
 }

в checkstyle.xml:

<module name="SuppressionFilter">
    <property name="file" value="${suppressionFile}" default="suppressions.xml"/>
</module>

(значение по умолчанию позволяет плагинам IDE, в которых не отсортирована переменная gradle, работать правильно)