Interstage Studio ユーザーズガイド |
目次 索引 |
第6章 ビルド | > 6.2 ビルダ | > 6.2.8 FindBugs |
FindBugsでは、チェックした内容を問題として扱うかをフィルタファイルで制御することができます。例えば、FindBugsによって問題として検出されたが、コードを確認したところ問題ないことが判明した場合には、除外フィルタファイルを設定することで、以降に問題として検出されないようにすることができます。
以下にフィルタファイルで使用するタグについて説明します。
タグ |
属性 |
説明 |
---|---|---|
FindBugsFilter |
− |
フィルタファイルのトップレベルの要素です。 |
Match |
− |
クラスを特定するための要素です。 |
class |
クラス名を指定します。 |
|
classregx |
クラス名を正規表現で指定します。 |
|
BugCode |
− |
バグパターンの省略形を指定するための要素です。バグパターンの省略形は問題メッセージの3番目に表示されるアルファベットの組み合わせです。 |
name |
バグパターンの省略形をコンマで区切って指定します。 |
|
Priority |
− |
優先度を指定するための要素です。 |
value |
以下の値を1つ指定します。 |
|
Method |
− |
メソッドを指定するための要素です。params属性とreturns属性は必須ではありませんが、指定する場合は両方指定する必要があります。 |
name |
メソッド名を指定します。 |
|
params |
引数の型の完全修飾名をコンマで区切って指定します。 |
|
returns |
復帰値の型の完全修飾名をコンマで区切って指定します。 |
|
Or |
− |
OR論理演算子の役目をする要素です。 |
実際の除外フィルタファイルの例を示します。
<?xml version="1.0" encoding="UTF-8"?> <FindBugsFilter> <!-- ClassNotToBeAnalyzedクラスに関する問題を検出しないようにします --> <Match class="com.foobar.ClassNotToBeAnalyzed" /> <!-- ClassWithSomeBugsMatchedクラスに関する以下の問題を検出しないようにします DE : 例外を見落としている、または無視しています。 UrF: 参照しないフィールドがあります。 --> <Match class="com.foobar.ClassWithSomeBugsMatched"> <BugCode name="DE,UrF" /> </Match> <!-- すべてのクラスに対してSQLの問題を検出しないようにします --> <Match classregex=".*" > <BugCode name="SQL" /> </Match> <!-- AnotherClassクラスのnonOverloadedMethod, frob, blatメソッドに対してフィールドの二重チェックの問題を検出しないようにします --> <Match class="com.foobar.AnotherClass"> <Or> <Method name="nonOverloadedMethod" /> <Method name="frob" params="int,java.lang.String" returns="void" /> <Method name="blat" params="" returns="boolean" /> </Or> <BugCode name="DC" /> </Match> <!-- MyClassクラスのsomeMethodに対して優先度2(普通)の意味の無いローカル変数への代入の問題を検出しないようにします --> <Match class="com.foobar.MyClass"> <Method name="someMethod"/> <BugCode name="DLS "/> <Priority value="2"/> </Match> </FindBugsFilter>
目次 索引 |