Java SE 8の正式リリースが、予定では3月18日(日本時間だと3月19日)と間近になっています。
Java SE 8でプログラミングするための開発環境を整備しようとしています。NetBeans IDEは、7.4でJava SE 8対応をある程度していますが、NetBeans 8.0が4月にリリース予定になっており現在RC1版が公開されているので、これを使ってみます。
昨今のソフトウェア開発プロジェクトでは、静的検証ツールを導入して品質向上を図ります。Javaでは、商用製品とオープンソースツールといろいろ揃っています。商用製品ではCoverity社のQuality Analizer(旧名Static Analysis)や、Techmatrix社のJtestなどが有名です。オープンソースツールでは、Checkstyle、PMD、FindBugsの3つが有名です。
ソースコードの静的検証は、リポジトリにコミットされたコードをサーバーで静的検証ツールを動かしてその結果を公開するCI(継続的インテグレーション)の方式と、ソースコードを編集する統合開発環境上で静的検証ツールを動かしてコードを変更したらすぐに検証結果を示す方式があります。
プログラミング言語Javaに熟達したプログラマーであればCI方式での検証で十分ですが、Javaに熟達していないプログラマーであれば、コードを書いているその場で問題を指摘してくれる方が望ましいです。
そこで、統合開発環境(IDE)上でプログラミングしながら即時に検証ができる環境を整えます。開発者一人一人にソースコード静的検証ツールを用意することになるので、商用製品では導入費用が高くなってしまいます(効果はあるのですが・・・)。そこで、オープンソースツールを使うことにします。商用製品はCI方式でサーバーに適用すると、相互補完的に運用できてよいかと思います。
NetBeans IDE 8.0RC1にFindBugs、Checkstyle、PMDのプラグインを入れる
NetBeans IDE 7.4とJDK7では、標準設定のプラグインサイトからこれらを選択してインストールできるようになっていました。しかし、NetBeans IDE 8.0RC1では、標準設定のプラグインサイトではFindBugsのプラグインである「FindBugs Integration」しか選択できません。CheckstyleとPMDのプラグインはまだ検証が終わっていないためでしょうか。
ところが、FindBugs IntegrationはFindBugs 2.0.3を使うので、Java SE 8には対応できません。
同じく、EasyPMDはPMD 5.0.5を使うので、Java SE 8には対応できません。新しい言語仕様のコードを含むファイルはパースエラーを起こしてしまいました。
Checkstyleは、Java SE 8の新しい言語仕様のコード箇所でエラーを起こします。
NetBeans IDE 8.0RC1およびJDK8ではこれら静的検証ツールのプラグインは現時点では壊滅状態ですが、ひとつひとつ確認してインストールする手順を確認してみました。
Windows上でのインストールの経緯(紆余曲折)は、次に記録を残しています。
http://www.torutk.com/issues/8
次に、複数開発者が参加するプロジェクトでは、同じルールを共有する必要があります。
NetBeans IDEに組み込んだFindBugs、Checkstyle、PMDのルール設定がどこに保存されるかを調べ、ルール設定を共有できることを目指します。
Windows上での設定については、以下のURLから各プラグインのリンクをたどった先に記録を残しました。
http://www.torutk.com/projects/swe/wiki/NetBeans
PMDのルールの充実ぶりはけっこうすごい
以前PMDを調べたときには、それほどとは思っていませんでした。今回調べてみると、今まで見たことがなかったルールもみかけます。PMDのルール(Java用)一覧ページは次です。
http://pmd.sourceforge.net/pmd-5.1.0/rules/index.html