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
[$Revision: 1.1 $ $Date: 2008.07.18 05:03:04 $]
[EOF]