У меня есть проект Maven 2, и я хочу настроить плагин отчета Checkstyle, чтобы анализировать только некоторые из моих классов. Я нашел свойство maven.checkstyle.excludes
, но, несмотря на передачу этого параметра в командной строке (используя -D=maven.checkstyle.excludes=...
), я не могу заставить его работать. Я не могу найти что-либо на странице документации плагина. В идеале я хочу иметь возможность установить это в разделе <configuration>
моего POM.
Исключение классов в отчетах плагина Maven Checkstyle
Ответ 1
Если этот вопрос касается Maven 2, то свойство excludes
и получает список Ant, разделенный запятыми. Поэтому либо передайте это в командной строке:
-Dexcludes=**/generated/**/*
Или настройте его в конфигурации плагина:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<excludes>**/generated/**/*</excludes>
</configuration>
</plugin>
Другой вариант - использовать фильтр подавления.
Например, вы можете использовать SuppressionCommentFilter
для подавления событий аудита между комментарием, содержащим CHECKSTYLE:OFF
, и комментарием, содержащим CHECKSTYLE:ON
(затем просто добавьте эти комментарии к классам или частям кода, который вы не хотите проверьте).
Ответ 2
Если, как и я, вы пришли сюда, чтобы найти способ исключить сгенерированные источники из checkstyle, сделайте следующее:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.15</version>
<configuration>
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
</configuration>
</plugin>
По умолчанию в checkstyle:checkstyle
для плагина checkstyle используется ${project.compileSourceRoots}
, который, по-видимому, включает сгенерированные исходные каталоги.
Если вы измените его на ${project.build.sourceDirectory}
, он будет использовать только исходный каталог, а не любые созданные исходные каталоги.
Обратите внимание, что в то время как <sourceDirectory>
устарел, альтернатива <sourceDirectories>
не работает.
Ответ 3
Кроме того, если вы хотите исключить независимые папки multiple, вы можете добавить несколько независимых путей, разделенных запятыми, например
<excludes>org/log4j/*,com/acme/**/*,com/companyb/*</excludes>