Игнорировать исключения checkstyle в сборках Gradle - PullRequest
1 голос
/ 06 апреля 2020

Я использую функции Java14 в своем коде. Это будет возможно в Checkstyle с сентября 2020 года и далее. До этого он вызывает исключение .

Пример java код :

switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
    case TUESDAY                -> System.out.println(7);
    case THURSDAY, SATURDAY     -> System.out.println(8);
    case WEDNESDAY              -> System.out.println(9);
}

Я настроил контрольный стиль, чтобы не останавливать исключения:

<property name="haltOnException" value="false"/>

Это все еще приводит к сбою контрольного стиля:

ant:checkstyle] [ERROR] /home/runner/work/jabref/jabref/src/main/java/org/jabref/logic/layout/format/AuthorAndsReplacer.java:1: Got an exception - com.puppycrawl.tools.checkstyle.api.CheckstyleException: IllegalStateException occurred while parsing file /home/runner/work/jabref/jabref/src/main/java/org/jabref/logic/layout/format/AuthorAndsReplacer.java.
> Task :checkstyleMain
[ant:checkstyle]    at com.puppycrawl.tools.checkstyle.JavaParser.parse(JavaParser.java:105)

Можно ли игнорировать ошибки синтаксического анализа при проверке?

Я все еще хочу другие классы проверяться

Ответы [ 2 ]

2 голосов
/ 07 апреля 2020

Вы должны использовать https://checkstyle.org/config_filefilters.html#BeforeExecutionExclusionFileFilter в своей конфигурации Checkstyle, чтобы Checkstyle вообще не обрабатывал эти файлы. Это исключит запуск всех модулей на указанных файлах, включая модули, использующие синтаксический анализатор Java, и те, которые не используют. В Checkstyle нет другого способа избежать синтаксического анализа этих файлов.

Я не очень хорошо знаю Gradle, но в командной строке Checkstyle есть аргументы -e и -x, которые также игнорируют файлы. Это приводит к тому же типу исключения, что и вышеупомянутый фильтр. Если gradle может использовать командную строку Checkstyle, то это еще один вариант, но, опять же, просто дублируйте фильтр другим способом.

0 голосов
/ 06 апреля 2020

Вы можете достичь этого, используя:

checkstyle {
    sourceSets = []
}

Также вы можете использовать аргумент командной строки:

gradle build -x checkstyleMain
...