ひよっこ。

I want to…

HudsonでFindBugsプラグインの出力結果を日本語化する方法

Posted by hikaruworld : 2009 3月 18

具体的には、プロジェクト→FindBugs WarningsのDetailsの各内容。

Hudsonは非常に便利なCIツールで、多様なプラグインが存在しているが、
日本語化されていないものも多い。

基本的には、英語でも問題ないのだが、FindBugsやCheckStyleといった
静的解析ツールの出力結果が日本語で表示されていないのは、色々と使いづらい。
※別にメニューや、見出しが英語なのは気にしないが。

今のプロジェクトではFindBugsやCheckStyleのエラーは「努力目標」に過ぎないため、理解しやすさは大切。
特にFindBugsは致命的な潜在バグを検出してくれるため、
「エラーメッセージが良くわからなくて修正できませんでした」なんていわれた日には
後で、痛い目にあう羽目になる。

それで、出力結果を日本語化できないものかと思い、試行錯誤してみた。

FindBugsの最新版を落としてきて、AntでHTML出力してみると問題なく日本語されていた。
で、1.3.2とは古いなぁと思いつつfindbugs-1.3.2.jarの中を覗いてみると、案の定、日本語ロケールのmessages.xmlがない。
この感じだと、Findbugsを最新版に置き換えれば簡単に解決しそうな感じなのでやってみるとOKだった。

で、前置きが長くなってしまったが、以下が対応方法。
結論から言うと、先述の通りFindBugsのライブラリを最新に置き換えたら解決した。
Hudsonのワークスペース(hudson.warではない)は/var/hudsonに存在していることが前提。

  1. hudsonを停止(自分の環境ではTomcat上で動いているのでTomcatを停止)
  2. 最新版のFindBugsをダウンロード(この時点では1.3.7)して展開(/usr/local/findbugsへ)
  3. Findbugsプラグインのlibがあるディレクトリ(/var/hudson/plugins/findbugs/WEB-INF/)に移動
  4. 既存のlibを./lib.dstに退避(理由は後で後述)
  5. 新規にダウンロードしたfindbugs内部のlibをHudsonのFindBugsプラグイン側にコピー
  6. 確認のためDiff

    lib.dist/だけに発見: annotations-1.0.0.jar
    lib/だけに発見: annotations.jar
    lib/だけに発見: ant.jar
    lib.dist/だけに発見: asm-3.0.jar
    lib/だけに発見: asm-3.1.jar
    lib.dist/だけに発見: asm-analysis-3.0.jar
    lib/だけに発見: asm-analysis-3.1.jar
    lib.dist/だけに発見: asm-commons-3.0.jar
    lib/だけに発見: asm-commons-3.1.jar
    lib.dist/だけに発見: asm-tree-3.0.jar
    lib/だけに発見: asm-tree-3.1.jar
    lib.dist/だけに発見: asm-util-3.0.jar
    lib/だけに発見: asm-util-3.1.jar
    lib.dist/だけに発見: asm-xml-3.0.jar
    lib/だけに発見: asm-xml-3.1.jar
    lib.dist/だけに発見: bcel-1.3.2.jar
    lib/だけに発見: bcel.jar
    lib/だけに発見: buggy.icns
    lib/だけに発見: commons-lang-2.4.jar
    lib.dist/だけに発見: coreplugin-1.3.2.jar
    lib.dist/だけに発見: dom4j-1.3.jar
    lib/だけに発見: dom4j-1.6.1.jar
    lib.dist/だけに発見: findbugs-1.3.2.jar.dist
    lib/だけに発見: findbugs-ant.jar
    lib/だけに発見: findbugs.jar
    lib/だけに発見: jFormatString.jar
    lib.dist/だけに発見: java2html-5.0.jar
    lib/だけに発見: jaxen-1.1.1.jar
    lib.dist/だけに発見: jsr305-1.3.2.jar
    lib/だけに発見: jsr305.jar

  7. 既存で退避したもののうち、バージョン違い以外で存在しているjarファイルをコピー。
    • coreplugin-1.3.2.jar
    • java2html-5.0.jar
  8. Hudsonを再起動
  9. 再度ビルドを実行

libを丸ごと置き換えるとFindBugsのソースコードviewでNoClassDeffoundErrorで落ちたので、java2html-5.0.jarをコピーしてきたら解決した。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。