第7章 FindBugs™ Eclipse プラグインの使用方法

目次

1. 必要条件
2. インストール
3. プラグインの使用方法
4. Eclipse プラグインの拡張方法 (2.0.0 以降)
5. トラブルシューティング

FindBugs Eclipse プラグインを使用することによって、 FindBugsEclipse IDE で使用することができるようになります。 このFindBugs Eclipse プラグインは、 Peter Friese 氏の多大な貢献によるものです。 Phil Crosby 氏 と Andrey Loskutov 氏は、プラグインの重要な改良に貢献しました。

1. 必要条件

FindBugs Eclipse Plugin を使用するためには、 Eclipse 3.3 あるいはそれ以降のバージョン、また、 JRE/JDK 1.5 あるいはそれ以降のバージョンが必要です。

2. インストール

更新サイトが提供されています。更新サイトを利用して、機械的に FindBugs を Eclipse にインストールできます。また自動的に、最新版のアップデートを照会してインストールすることもできます。内容の異なる 3 つの更新サイトが存在します。

FindBugs Eclipse 更新サイト一覧

http://findbugs.cs.umd.edu/eclipse/

FindBugs の公式リリース物を提供します。

http://findbugs.cs.umd.edu/eclipse-candidate/

FindBugsの公式リリース物に加えて、公式リリース候補版を提供します。

http://findbugs.cs.umd.edu/eclipse-daily/

FindBugsの日次ビルド物を提供します。コンパイルができること以上のテストは行われていません。

また、次に示すリンクから手動でプラグインをダウンロードすることもできます : http://prdownloads.sourceforge.net/findbugs/edu.umd.cs.findbugs.plugin.eclipse_3.0.1.20150306.zip?download. 展開して Eclipse の「plugins」サブディレクトリーに入れてください。(そうすると、 <eclipse インストールディレクトリー >/plugins/edu.umd.cs.findbugs.plugin.eclipse_3.0.1.20150306/findbugs.png が FindBugs のロゴファイルへのパスになるはずです。)

プラグインの展開ができたら、 Eclipse を起動して HelpAbout Eclipse PlatformPlug-in Details を選択してください。「FindBugs Project」から提供された「FindBugs Plug-in」というプラグインがあることを確認してください。

3. プラグインの使用方法

実行するには、 Java プロジェクト上で右クリックして「Find Bugs」を選択します。FindBugs が実行されて、バグパターンの実例の可能性があると識別されたコード箇所に問題マーカーがつきます。 (ソース画面および Eclipse 問題ビューに表示されます。)

Java プロジェクトのプロパティーダイアログを開いて「Findbugs」プロパティーページを選択することで、 FindBugs の動作をカスタマイズすることができます。選択できる項目には次のようなものがあります :

  • 「Run FindBugs Automatically」チェックボックスの設定。チェックすると、プロジェクト内の Java クラスが修正されるたびに FindBugs が実行されます。

  • 優先度とバグカテゴリーの選択。これらのオプションは、どの警告を表示するかを選択します。例えば、優先度で 「Medium」 を選択すると、優先度 (中) および優先度 (高) の警告のみが表示されます。同様に、「Style」チェックボックスのチェックマークを外すと、Style カテゴリーに属する警告は表示されません。

  • ディテクタの選択。表からプロジェクトで有効にしたいディテクタを選択することができます。

4. Eclipse プラグインの拡張方法 (2.0.0 以降)

Eclipse プラグインでは、 独自の FindBugs ディテクタを追加することができます。 (詳しく知りたい方は、 AddingDetectors.txt もご覧ください)。 独自のプラグインを Eclipse に追加するには以下の2通りの方法があります。

  • 既存の標準 FindBugs ディテクタパッケージは以下で設定できます。 WindowPreferencesJavaFindBugsMisc. SettingsCustom Detectors。 ここで追加するプラグインライブラリの場所を指定するだけです。

    この方法の利点は、既存のディテクタパッケージは「そのまま」で、サードパーティーディテクタの品質をすばやく検証できることです。 欠点としては、この設定は Eclipse ワークスペース毎に適用する必要があり、この設定をチームメンバー間で共有することができないことです。

  • Eclipse 標準の拡張機構を使って独自のディテクタを追加することができます。

    findBugsEclipsePlugin/schema/detectorPlugins.exsd の documentation で plugin.xml の更新方法を確認してください。 既存の FindBugs ディテクタプラグイン を簡単に「拡張」して強力な FindBugs Eclipse ディテクタプラグイン にすることができます。 通常必要なのは、 META-INF/MANIFEST.MF および plugin.xml を jar に追加してかつ、 MANIFEST.MF がビルド時に上書きされないようにビルドスクリプトを更新するだけです。

    この方法の利点は、 Eclipse インストールを共有しさえすれば、チームメンバー同士で正確に同じディテクタ設定を使用できることです。 前提条件は現在使用しているディテクタパッケージを Eclipse プラグインに変換しておくことです。 これはサードパーティのディテクタパッケージも同様です。 もうひとつの主な差別化要因は、 FindBugs のデフォルト実行時クラスパス に当該サードパーティライブラリーを追加することが必要なことです(くわしくは AddingDetectors.txt をご覧ください)。

5. トラブルシューティング

このセクションでは、プラグインに関する一般的な問題と (判明していれば) それらの問題の解決方法を記述します。

  • Eclipse において FindBugs の分析開始後に OutOfMemory エラーダイアログが 出た場合は、 JVM の使用メモリを増やしてください。すなわち、 eclipse.ini の末尾に以下の記述を追加してください。

        -vmargs
        -Xmx1000m
        

    重要:「-vmargs」で始まる設定引数は eclipse.ini ファイルの末尾に記述する必要があります。 また、各行には引数を一つだけしか書くことができません!

  • FindBugs 問題マーカーが (ソース画面および問題ビューに) 表示されない場合は、問題ビューのフィルター設定を変更してください。 詳細情報は http://findbugs.sourceforge.net/FAQ.html#q7 を参照してください。