FindBugs メモ
Ant で診断
FindBugs は、コードの静的解析を行うツールだ。 静的解析と言っても、CheckStyle のようにソースだけを見るわけではない。 class ファイルを見て、「バグになりそうな箇所」を見つけてくれるツールだ。
配布物には GUI のツールも同梱されているが、 ビルドプロセスに統合するには Ant を使うのが簡単である。 というわけで Ant で FindBugs の診断を行う方法を紹介する。
まずは 日本語マニュアル が役に立つ。 何はともあれ sourceforge から、直近のバージョンを入手する。 2005.11.25 現在では 0.9.4-rc2 が最新版。入手したら、展開する。 インストール先ディレクトリが /usr/local/findbugs/ であると仮定すると、
% tar xvf findbugs-0.9.4-rc2.tar.gz % su # make -p /usr/local/findbugs # mv findbugs-0.9.4-rc2/* /usr/local/findbugs
本体のインストールはこれで完了だ。/usr/local/ じゃない別のところが良ければ、 好きなところに置けば良い。 次に ant タスク用のライブラリをインストール。 と言っても lib ディレクトリ以下に ant タスク用の jar ファイルがあるので、 これを $ANT_HOME/lib/ にコピーするのみ。 つまり、ant を ports で入れている場合は /usr/local/ant/lib/ に突っ込むわけだ。
# cd /usr/local/findbugs # cp -p lib/findbugs-ant.jar /usr/local/ant/lib/ # exit
これで準備は完了。あとは使うのみ。 まずは build.xml に findbugs のインストール先と ant タスクの定義を追加する。
<property name="findbugs.home" value="/usr/local/findbugs" /> <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" />
このタスクを呼び出す形でターゲットを作成する。 このとき、検査対象の クラスとソース を指定する。 例えば以下のような具合だ。
<target name="findbugs"> <findbugs home="${findbugs.home}" output="xml" outputFile="sampleResult.xml" > <sourcePath path="${basedir}/sources/" /> <class location="${basedir}/classes/" /> </findbugs> </target>
こうして定義したターゲットを呼び出せば、チェックが行われる。 build.xml の中で、デフォルトタスクが コンパイルと FindBugs に依存するようにしてもいいし、 単独の target としておいて手で呼び出してもいい。
ここも参考になる:
- http://www.simeji.com/wiki/pukiwiki.php?FindBugs