web-dev-qa-db-ja.com

Maven Checkstyleプラグインレポートでのクラスの除外

Maven 2プロジェクトがあり、一部のクラスのみが分析されるようにCheckstyleレポートプラグインを構成したいと思います。私はmaven.checkstyle.excludesプロパティを見つけましたが、これをコマンドラインパラメータとして渡しても(-D=maven.checkstyle.excludes=...を使用して)機能しません。プラグインのドキュメントページで何も見つかりません。理想的には、これを私のPOMの<configuration>セクションで設定できるようにしたいと思います。

38

この質問が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を含むコメントの間の監査イベントを抑制できます(これらのコメントをクラスに追加するだけです)またはチェックしたくないコードの一部)。

45
Pascal Thivent

私のように、checkstyleからgeneratedソースを除外する方法を探してここに到着した場合は、次のようにします。

<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>は機能しないようです。

56
drew

さらに、multiple独立フォルダーを除外する場合は、次のように複数の独立パスをコンマで区切って追加できます

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