Как исключить module-info.java из проверок плагина checkstyle?
После добавления module-info.java
Файлы в моем проекте мой плагин checkstyle начинают сбой с:
[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins:maven-checkstyle-plugin:2.17: проверка (default-cli) в электронном письме проекта: не удалось во время настройки контрольного стиля: возникла исключительная ситуация NoViableAltException во время анализа файла /home/xxx/IdeaProjects/blynk-сервер / сервер / уведомление / электронный / SRC / главный / Java / module-info.java. неожиданный токен: module -> [Help 1]
Я старался
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="module\-info\.java$"/>
</module>
Однако, это не удалось с:
[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins:maven-checkstyle-plugin:2.17: проверка (default-cli) в проекте blynk: Не удалось во время конфигурации checkstyle: не удалось инициализировать модуль BeforeExecutionExclusionFileFilter - Невозможно создать экземпляр класса BeforeExecutionExclusionFileFilter, также невозможно создать его экземпляр как com.puppycrawl.tools.checkstyle.checks.annotation.BeforeExecutionExclusionFileFilter
Как правильно пропустить module-info.java
файлы во время проверки стиля для Maven-Checkstyle-плагин?
3 ответа
Не уверен, почему фильтр Checkstyle не работает (эта ошибка кажется очень похожей на вашу, и она была исправлена в версии 7.3.0, поэтому, возможно, вам нужно обновить Checkstyle).
Во всяком случае, Maven excludes
Элемент также должен сделать это:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<excludes>**/module-info.java</excludes>
</configuration>
</plugin>
Больше в документации по целям плагина.
BeforeExecutionExclusionFileFilter
был добавлен в Checkstyle 7.2.
Но maven-checkstyle-plugin
версия 3.0.0 (последняя версия на 2018-04-01) использует Checkstyle 6.18 по умолчанию.
"Checkstyle" и "Checkstyle Maven Plugin" - разные вещи и имеют разные циклы выпуска.
Вы можете обновить версию Checkstyle следующим образом:
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version> <!-- Checkstyle Plugin version -->
<!-- ... Configuration, Executions ... -->
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.8</version> <!-- Checkstyle version -->
</dependency>
</dependencies>
</plugin>
После этого, BeforeExecutionExclusionFileFilter
а также другие более новые функции Checkstyle (например, новые проверки) будут распознаваться.
Хотя это не может быть квалифицировано как ответ. Тем не менее, будучи слишком длинным, чтобы уместиться в комментариях, просто чтобы записать трек, что maven-checkstyle-plugin
в:-
- Последний выпуск был версии
2.17
15 октября 2015 года, который был почти 2 года назад. - Текущий ствол maven-плагинов указывает на текущую работу в плагине в его
3.0.0-SNAPSHOT
версия, которая может означать, что вскоре мы можем ожидатьorg.apache.maven.plugins:maven-checkstyle-plugin:3.0.0
когда-нибудь в ближайшем будущем и который бы понялmodule-info.java
как класс. - Это не согласуется с документом Java + 9 + - + Jigsaw, в котором указан список модулей и плагинов, которые обновляются для поддержки JDK-9.