Interstage Studio ユーザーズガイド
目次 索引 前ページ次ページ

第6章 ビルド> 6.2 ビルダ> 6.2.8 FindBugs

6.2.8.3 FindBugsのフィルタファイルの書式

FindBugsでは、チェックした内容を問題として扱うかをフィルタファイルで制御することができます。例えば、FindBugsによって問題として検出されたが、コードを確認したところ問題ないことが判明した場合には、除外フィルタファイルを設定することで、以降に問題として検出されないようにすることができます。

以下にフィルタファイルで使用するタグについて説明します。

タグ

属性

説明

FindBugsFilter

フィルタファイルのトップレベルの要素です。

Match

クラスを特定するための要素です。

class

クラス名を指定します。

classregx

クラス名を正規表現で指定します。

BugCode

バグパターンの省略形を指定するための要素です。バグパターンの省略形は問題メッセージの3番目に表示されるアルファベットの組み合わせです。

name

バグパターンの省略形をコンマで区切って指定します。

Priority

優先度を指定するための要素です。

value

以下の値を1つ指定します。
1:高い
2:普通
3:低い

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>

目次 索引 前ページ次ページ

Copyright 2007-2009 FUJITSU LIMITED