概要
FindBugs Pluginの導入
Gradleタスク
コマンド | 依存先 | 内容 |
---|---|---|
findbugsMain | classes | 製品のJavaソースを対象にFindBugsを実行します。 |
findbugsTest | testClasses | テストのJavaソースを対象にFindBugsを実行します。 |
findbugsSourceSet | sourceSetClasses | 特定のソースセットで指定されたJavaソースを対象にFindBugsを実行します。 |
出力フォーマット指定
デフォルトではxmlになっているのでbuild.gradleに下記の設定を追加してhtmlに変更します。
tasks.withType(FindBugs) { reports { xml.enabled = false html.enabled = true } }
補足
デフォルトでFindbugsの警告内容を説明するメッセージの日本語がSJISになっているようで、Eclipse側でUTF-8設定にしていると
文字化けしてしまいます。
上記に対する対応策として各Webサイトではjarの中の日本語メッセージファイルをSJISからUTF-8に変換している例が多くありましたが
jarの中身をいじるのが微妙だったのでGradleのタスクを実装してみました。
出力されたレポートのMETAタグにSJISを設定しました。
task findbugsConvertSJis << { def filename="%ProjectRoot%\\build\\reports\\findbugs\\main.html" def file = new File(filename) def text = file.getText() text = text.replaceAll(/<head>/, "<head>\n<meta http-equiv='Content-Type' content='text/html; charset=x-sjis'>") def fw=new File(filename).newWriter() fw.writeLine(text) fw.close() }
%ProjectRoot%のところは任意のプロジェクトルートへのパスで。