web-dev-qa-db-ja.com

SpotBugs Mavenプラグインがディレクトリを除外する

静的分析に SpotBugs Mavenプラグイン を使用しており、検査からディレクトリを除外したいと思います。 spotbugs:check目標のドキュメント 、プラグインを設定することができないようです。また、SpotBugs filter file のドキュメントも確認しました。

Apache Maven PMDプラグインでは、これは excludeRoots パラメータを使用して実行できます。

<excludeRoots>
  <excludeRoot>target</excludeRoot>
</excludeRoots>

SpotBugsインスペクションからディレクトリを除外することは可能ですか?

7
Boris

SpotBugsを使用した検査からディレクトリを除外することは可能ですが、アプローチはPMDについて説明したものとは異なります。これは2段階のプロセスです。

  1. 最初に XMLフィルターファイルを作成 除外するディレクトリの基準を指定します。

  2. 次に、pom.xmlで、オプションの<excludeFilterFile>設定を使用してそのファイルを参照します。残念ながら、 その設定のドキュメント は非常に簡潔です。

簡単な例として:

  1. ignore.xmlという名前のフィルターファイルを作成します。これには、mydirという名前のディレクトリを参照する次のものが含まれます。

    <?xml version="1.0" encoding="UTF-8"?>
    <FindBugsFilter>
        <Match>
            <Source name="~mydir\..*"/>
        </Match>
    </FindBugsFilter>
    

    <Source>タグはこちら のドキュメントです。 <Source>nameを指定する方法の詳細については、 Java要素名の一致 のセクションを参照してください。

  2. 次に、pom.xmlspotbugs-maven-pluginの仕様に、<excludeFilterFile>タグを含めて、 mydirはSpotBugsによって無視されます:

    <configuration>
      <excludeFilterFile>ignore.xml</excludeFilterFile>
    </configuration>
    

ノート:

  • <includeFilterFile>タグもあります。 使用方法のドキュメント実行するバグフィルターの指定というタイトルのセクションを参照してください。

  • Sourceと同様に、SpotBugsには、チェックに含めるコードまたはチェックから除外するコードを指定するためのいくつかの他の方法が用意されています。 PackageClassMethodLocalFieldおよびTypeタグのフィルターファイルのドキュメントを参照してください。

3
skomisa