SpotBugs GUI の使い方

この章では,SpotBugs グラフィカルユーザインタフェース (GUI) の使い方について説明します。

プロジェクトの作成

spotbugs コマンドを使って SpotBugs を起動したら,File New Project メニュー項目を選択します。次のようなダイアログが表示されます。

_images/project-dialog.png

「Classpath to analyze」の横にある「Add」ボタンを使用して,バグを解析する Java アーカイブファイル (zip,jar,ear,war ファイル) または Java クラスを含むディレクトリを選択します。複数のアーカイブ/ディレクトリを追加できます。

また,解析をする Java アーカイブのソースコードを含むディレクトリを追加することもできます。そうすると,SpotBugs は発生する可能性があるエラーを含むソースコードを強調表示できます。追加するソースディレクトリは,Java パッケージ階層のルートにする必要があります。たとえば,アプリケーションが org.foobar.myapp パッケージに含まれているときは,org ディレクトリの親ディレクトリをプロジェクトのソースディレクトリに追加する必要があります。

もうひとつのオプションの手順は,追加する jar ファイルやディレクトリを「Auxiliary classpath locations」エントリとして追加することです。解析するアーカイブ/ディレクトリにも標準のランタイムクラスパスにも含まれていないクラスをアーカイブ/ディレクトリが参照しているときは追加する必要があります。SpotBugs のバグパターンディテクタの中には,クラス階層情報を利用するものがあるため,SpotBugs が解析を行うクラス階層全体が利用可能なら,より正確な結果が得られます。

解析の実行

すべてのアーカイブ,ディレクトリ,ソースディレクトリを追加したら,「Analyze」ボタンをクリックして jar ファイルに含まれるクラスを解析します。古いコンピュータ上の巨大プロジェクトでは,かなりの時間 (数 10 分) かかることに注意してください。十分なメモリを備えた最近のコンピュータなら,大きなプログラムを数分で解析できます。

結果の閲覧

解析が完了すると,次のような画面が表示されます。

_images/example-details.png

ウィンドウの左上のペインにバグツリーが表示されます。これは,解析された jar ファイルで検出されたすべての潜在的なバグを階層的に表したものです。

上部ペインで特定のバグインスタンスを選択すると,下部ペインの「Details」タブにバグの説明が表示されます。さらに,右上のソースコードペインには,ソースが利用可能であれば,潜在的なバグが発生する場所のプログラムソースコードが表示されます。上記の例では,バグはクローズされていないストリームオブジェクトです。ソースコードウィンドウは,ストリームオブジェクトが作成された行を強調表示します。

バグインスタンスにテキストで注釈を追加できます。階層ビューのすぐ下にあるテキストボックスに注釈を入力します。記録しておきたい情報を入力できます。バグ結果ファイルをロード,保存したときに,注釈も保存されます。

保存と開く

File Save as... メニューオプションを使用するとユーザ作業を保存できます。指定した jar ファイルリストとすべてのバグ結果を含むユーザ作業を保存したいときは「Save as...」ダイアログのドロップダウンリストから「SpotBugs analysis results (.xml)」を選択します。jar ファイルリストだけを保存する (「FindBugs project file (.fbp)」),結果だけを保存する (「FindBugs analysis file (.fba)」) オプションもあります。保存されたファイルは File Open... メニューオプションでロードできます。