敢えて規約を破るケース(FindBugsの警告抑制)

の情報も探してみた。が、こちらは結構難しい。

Checkstyleは、*.javaを解析してチェックします。なので、コメントに反応できる。しかしFindBugsはコンパイル後の *.class がチェック対象です。なのでコメントでFindBugsを制御することはできません。

従って、FindBugsではアノテーションによる警告抑制手段を用意しているようです。

@edu.umd.cs.findbugs.annotations.SuppressWarnings(
    value="EQ_COMPARETO_USE_OBJECT_EQUALS", 
    justification="because I know better")

http://stackoverflow.com/questions/249536/when-using-eclipse-with-findbugs-can-you-mark-a-bug-as-not-a-bug-and-have-it-remo

justification要素で「この抑制が正当である理由」を記述できるのが++ですね。
ただ、java.lang.SuppressWarnings と単純名がカブっているので、完全修飾名で書くことが奨められているようです。


しかし、ここで気になるのがライセンス。FindBugsはLGPLで配布されるオープンソースプロダクトです。自分で書いたコードをFindBugsで「調査する」だけであれば、このコードはFindBugsに依存することはないので、LGPLによる制約は受けません。

しかし、FindBugsによって定義されたアノテーションをコード内に書く(依存する、つまりFindBugsがなければコンパイルできない)となると話は違ってくるのではないだろうか。

と思って使用に踏み切れない。