忍者ブログ
[394] [393] [392] [391] [390] [389] [388] [387] [386] [385] [384]

DATE : 2017/08/18 (Fri)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


DATE : 2011/07/24 (Sun)

FindBugsは、バグらしきところをJavaバイトコードを解析して検査するツールです。AndroidアプリにもFindBugsをかけることができるため、FindBugsを実行するAntのtargetを書きました。

本targetを使用する手順は以下の通りです。

  1. FindBugsをインストールする。
  2. Antのライブラリディレクトリにfindbugs-ant.jarをコピーする。
  3. Androidプロジェクトのディレクトリの直下にあるbuild.xmlの<setup />の下に、以下をコピーアンドペーストする。
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" />

<target name="findbugs" depends="compile"
        description="Run FindBugs.">
    <findbugs home="${findbugs.home}"
            output="${findbugs.output}"
            outputFile="${findbugs.output.file}"
            excludeFilter="${findbugs.exclude.filter}">
        <sourcePath path="${source.absolute.dir}" />
        <sourcePath path="${gen.absolute.dir}" />
        <auxClasspath path="${android.jar}" />
        <class location="${out.classes.absolute.dir}" />
    </findbugs>
</target>

target中の以下のプロパティは適切なものを設定するか、置き換えください。findbugsタスクの詳細は、「Using the FindBugs™ Ant task」を参照してください。

findbugs.home
FindBugsがインストールされているディレクトリへのパス。
findbugs.output
レポートの形式。htmlを指定するとHTML形式で、xmlを指定するとXML形式で出力される。
findbugs.output.file
レポートを出力するパス。ファイル名も含む。
findbugs.exclude.filter
以下に示すXMLファイルへのパス。

自動生成されるR.javaの内部クラスの名前は小文字で始まるため、NM_CLASS_NAMING_CONVENTIONが指摘されます。そこで以下のXMLファイルでレポートの対象外とします。

<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
    <Match>
        <Class name="~.*\.R\$.*" />
        <Bug code="Nm" />
    </Match>
</FindBugsFilter>

これで、「ant findbugs」と実行するとFindBugsをかけることができます。

レポートが文字化けする場合は、以下のいずれかの対策を取ります。

  1. findbugsタグの属性として「jvmargs="-Duser.language=en"」を追加し、レポートの言語を英語に変更する。
  2. FindBugsに含まれている日本語のメッセージファイルのエンコーディングをUTF-8に変換する。詳しくは「UTF-8環境での eclipse findbugs-plugin の文字化け解消」などを参照。
PR
●この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
●この記事へのトラックバック
この記事にトラックバックする:
忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)
ブログ内検索
最近の状況
リンク
カレンダー
07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)