Исключение классов в отчетах плагина Maven Checkstyle - PullRequest
35 голосов
/ 02 марта 2010

У меня есть проект Maven 2, и я хочу настроить свой плагин отчетов Checkstyle, чтобы анализировать только некоторые из моих классов. Я нашел свойство maven.checkstyle.excludes, но, несмотря на передачу его в качестве параметра командной строки (используя -D=maven.checkstyle.excludes=...), я не могу заставить его работать. Я не могу найти ничего на странице документации по плагину. В идеале я хочу иметь возможность установить это в разделе <configuration> моего POM.

Ответы [ 3 ]

48 голосов
/ 23 мая 2015

Если, как и я, вы пришли сюда в поисках способа исключения сгенерированных источников из контрольного стиля, сделайте следующее:

<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>, похоже, не работает.

42 голосов
/ 02 марта 2010

Если этот вопрос касается 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 (затем просто добавьте эти комментарии к классам или частям кода Вы не хотите проверять).

20 голосов
/ 21 марта 2012

Кроме того, если вы хотите исключить несколько независимых папок, вы можете добавить несколько независимых путей, разделенных запятой, как это

<excludes>org/log4j/*,com/acme/**/*,com/companyb/*</excludes>
...