Maven でFindBugs のレポートを出力させる方法
またもやMaven の話です。
FindBugs
FindBugs という大変素晴らしい静的解析ツールが存在している事は皆さんご存知の事でしょう。FindBugs はソースコード中に潜在的に存在しているバグやバグの原因となる部分を検出してくれるので非常に助かります。
大体はEclipse とかのIDE に組み込んでウヒョヒョコリャ便利じゃい!!!!! とかやってると思うんですけど、
これをMaven でドカーン!! と出力できれば、Jenkins 等のCI ツールで自動的にFindBugs のレポートを出せるので更に便利っぽいですよね。
ナイトリービルド時なんかにレポートを生成するようにすれば、ソースコードの品質をリアルタイム的にモニタリングできますし、
開発メンバー間でもそれを共有出来るので意識が高くてセカイが救われそうな感じです。
というわけで以下やり方です。
pom.xml を書く
やっぱりpom を書きます。Maven だもの。http://mojo.codehaus.org/findbugs-maven-plugin-2.5.2/usage.html
↑に載っているコードチップをそのままpom.xml に書き込んで、
$ maven siteとかやれば上手い事いきそうなもんですが、
僕が試した環境だと上手く動作しなかったので以下のように書きました。
(普通の場合は上のページに載ってるコードチップを写せば大丈夫だと思います)
<project> ... <build> <plugins> <plugin> <artifactId>maven-site-plugin</artifactId> <configuration> <reportPlugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>findbugs-maven-plugin</artifactId> <version>2.5.2</version> <configuration> <effort>Default</effort> <threshold>Default</threshold> <xmlOutput>true</xmlOutput> <xmlOutputDirectory>target/site</xmlOutputDirectory> <excludeFilterFile>findbugs-exclude.xml</excludeFilterFile> </configuration> </plugin> </reportPlugins> </configuration> </plugin> </plugins> </build> ... </project>上のように書いて`$ mvn site` を実行すると、target/site ディレクトリ以下にFindBugs のレポートが出力されます。
レポートの出力先は
例 (findbugs-exclude.xml)
<FindBugsFilter> <Match> <Class name="~.*\.R" /> </Match> <Match> <Class name="~.*\.R\$.*" /> </Match> </FindBugsFilter>上のように書いておくと、末尾が'R' もしくは末尾が'R$<0文字以上の任意の文字>' のクラスをFindBugs の解析対象から外せます。
また逆に
http://findbugs.sourceforge.net/manual/filter.html