- Eclipse 4.2
- FindBugs 2.0.2
Creating Our Plugin
Setting Up Eclipse
素直にそのままやって問題なかった。Setting Up the Classpath
findbugs.jar, bcel.jarに加えて、jsr305.jarもClasspathに追加する必要があった。findbugs.jarが依存しているみたい。Writing the Bug Detector
そのままDetector codeのサンプルをコピーして問題なかった。Deployment & Testing
Building
以下2つのxmlファイルは、プロジェクトフォルダーのルートに配置する。書かれている通りだけれど、読み落としがち。findbugs.xml
コメントにあるとおり、公式サイトと要素名が異なるけれど、こちらの記載通りFindBugsPlugin要素で問題なかった。サンプルには含まれていないけれど、一行目にXML宣言を追加しておく方がベターだと思う。
messages.xml
そのままサンプルをコピーして問題なかった。Building in Eclipse
そのままやれば問題ないのだけれど、JAR Exportの設定が色々と初期値と異なる点に注意。間違えるとプラグインとして追加しても、Invalidと表示されて機能しない。一度やれば、jardescからその設定で再ビルドできる。CIするためにAntタスクとして定義したい。
Loading Our Plugin
GUI (Eclipseの設定画面 Java > FindBugs) から追加した。EclipseのpluginsフォルダのFindBugsのpluginフォルダに追加しても、うまくいくかも試したい。ここまでやって、Quizのコードスニペットを含むクラスでFindBugsを実行してみたら、期待通り動作した。めでたし、めでたし。
以下は、覚え書き。
このチュートリアルの"Debugging"はまだ書かれていない。テストケースの簡単な説明はFindbugsTestCasesにあるけれど、ここを読むだけではちょっと分りそうにない。実際のテストケースを見ながら、試行錯誤が要りそう。
チュートリアルではなぜこうするのか分らないけれど、Plugins4FindBugsで補完できる。Detector Pluginの概要が記載されている。
Eclipse Pluginに特化した内容として、コメントでFindBugs In Eclipse Tutorialが紹介されているのに、後から気がついた。ただ、FindBugs 1.3.9よちょっと情報が古い。
References
- FindBugs: 公式サイト
- FindBugs 第 1 回: コード品質を改善する, FindBugs 第2回: カスタムのチェック機能を書く: IBM Developper Worksの関連エントリィ
- FindBugsのバグパターンを実装する - eller's blog: ノウハウが簡潔にまとまっている