web-dev-qa-db-fra.com

Exclusion de classes dans les rapports du plugin Maven Checkstyle

J'ai un projet Maven 2 et je souhaite configurer mon plug-in de rapport Checkstyle afin que seules certaines de mes classes soient analysées. J'ai trouvé le maven.checkstyle.excludes, mais malgré le passage en tant que paramètre de ligne de commande (en utilisant -D=maven.checkstyle.excludes=...) Je n'arrive pas à le faire marcher. Je ne trouve rien sur la page de documentation du plugin. Idéalement, je veux pouvoir définir cela dans le <configuration> section de mon POM.

38

Si cette question concerne Maven 2, la propriété est excludes et prend une liste de modèles Ant séparés par des virgules. Donc, passez ceci sur la ligne de commande:

-Dexcludes=**/generated/**/*

Ou configurez-le dans la configuration du plugin:

<plugin>
   <groupId>org.Apache.maven.plugins</groupId>
   <artifactId>maven-checkstyle-plugin</artifactId>
   <configuration>
       <excludes>**/generated/**/*</excludes>
   </configuration>
</plugin>

Une autre option serait d'utiliser n filtre de suppression .

Par exemple, vous pouvez utiliser le SuppressionCommentFilter pour supprimer les événements d'audit entre un commentaire contenant CHECKSTYLE:OFF et un commentaire contenant CHECKSTYLE:ON (puis ajoutez simplement ces commentaires aux classes ou parties du code que vous ne voulez pas vérifier).

45
Pascal Thivent

Si, comme moi, vous êtes arrivé ici à la recherche d'un moyen d'exclure les sources générées de checkstyle, procédez comme suit:

<plugin>
  <groupId>org.Apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <version>2.15</version>
  <configuration>
    <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
  </configuration>
</plugin>

Par défaut, le checkstyle:checkstyle objectif du plugin checkstyle utilise ${project.compileSourceRoots}, qui inclut apparemment les répertoires sources générés.

Si vous le changez en ${project.build.sourceDirectory}, il utilisera uniquement le répertoire source, pas les répertoires source générés.

Notez que tandis que <sourceDirectory> est obsolète, l'alternative, <sourceDirectories>, ne semble pas fonctionner.

56
drew

De plus, si vous souhaitez exclure plusieurs dossiers indépendants, vous pouvez ajouter plusieurs chemins indépendants séparés par des virgules comme ceci

<excludes>org/log4j/*,com/acme/**/*,com/companyb/*</excludes>
21
Christer Fahlgren