Escludendo le classi in Maven Checkstyle plugin di rapporti
-
23-09-2019 - |
Domanda
Ho un progetto Maven 2 e voglio configurare il mio rapporto plug Checkstyle in modo che solo alcune delle mie classi vengono analizzati. Ho trovato la proprietà maven.checkstyle.excludes
, ma nonostante questo passando come parametro di riga di comando (usando -D=maven.checkstyle.excludes=...
) non riesco a farlo funzionare. Non riesco a trovare nulla sulla pagina di documentazione Plugin. Idealmente mi voglio essere in grado di impostare questo nella sezione <configuration>
della mia POM.
Soluzione
Se questa domanda è su Maven 2, quindi la proprietà è excludes
e prende un elenco separato da virgole dei modelli Ant. Quindi, o passare questo sulla riga di comando:
-Dexcludes=**/generated/**/*
o impostarla nella configurazione del plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<excludes>**/generated/**/*</excludes>
</configuration>
</plugin>
Un'altra opzione sarebbe quella di utilizzare un filtro di soppressione .
Per esempio si potrebbe utilizzare il SuppressionCommentFilter
per eventi di controllo Sopprimere tra una contenente CHECKSTYLE:OFF
commento e un commento contenente CHECKSTYLE:ON
(poi basta aggiungere questi commenti alle classi o parti di codice che non vuoi al controllo).
Altri suggerimenti
Se, come me, è arrivato qui alla ricerca di un modo per escludere generato fonti da checkstyle, fare questo:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.15</version>
<configuration>
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
</configuration>
</plugin>
Per impostazione predefinita, il checkstyle:checkstyle
obiettivo del checkstyle plugin utilizza ${project.compileSourceRoots}
, che comprende quanto pare directory di origine generati.
Se si modifica a ${project.build.sourceDirectory}
, userà solo la directory di origine, le directory di origine non alcun generati.
Si noti che mentre <sourceDirectory>
è deprecato, l'alternativa, <sourceDirectories>
, non sembra al lavoro.
Inoltre, se si desidera escludere più le cartelle indipendenti, è possibile aggiungere più percorsi da virgole indipendente separato come questo
<excludes>org/log4j/*,com/acme/**/*,com/companyb/*</excludes>