PMDは潜在的なバグからコーディング規約をチェックすることができる静的解析ツールです。例えばコネクションオブジェクトを使用したら必ずクローズメソッドが呼ばれなければならない、あるいはnullとの比較にequals()メソッドは使用しないなど、コンパイルエラーとしてチェックされないが、バグを誘発する可能性が高いコードをチェックしてくれます。
PMDは先ほど紹介したCheckstyleや、後から紹介するFindBugsと比べると、コーディングスタイルのチェックルールを持ち、かつ潜在的なバグをチェックするルールを持っているオールラウンド的なツールです。ただしデフォルトで提供されるルール数はそれほど多くはないので、プロジェクト固有のカスタムルールを作成し、幅広いチェックができるようにするとよいです。
PMDの特長は以下になります。
・豊富なチェックルールを提供
潜在的なバグから、コーディング規約に関するルールまで幅広いチェックルールが提供されています。また本稿では取り上げませんが、ソースコードのメトリクス情報を算出するためのルールや計測機能を持っていることも大きな特長として挙げられます。
・ソースコードが解析対象
ソースコードが解析対象のため、プログラムの作成途中でもチェックが可能です。
・ルールには優先度の設定が可能
幅広いチェックルールを持つため、PMDの各ルールには5段階の優先順位(Error High/ Error/ Warnig High/ Warning / Information)が付与されています。これにより開発者はチェックで検出されたメッセージにおいてどの部分を優先的に修正すべきか判断することができます。
・適用するルールの選択が可能
ルールのカテゴリを独自に設定し、必要なルールのみをチェックできるようにフィルタリングすることができます。
・ルールの拡張性が高い≪≫
ルールを追加する方法として、以下のいずれかの方法を使用することができます
PMDではXPathを用いたカスタムルールの作成を支援するためにツール(AST Viewer)を提供しています。ただしPMDプラグインでは提供されていないため、別途下記のURLからダウンロードしてください。
・豊富な連携ツールが存在する
Eclipse以外にもさまざまなIDE上で利用することができます。利用可能なIDEは以下のURLを参照してください。
■入手方法
PMDを利用する場合は、Eclipseのアップデート機能を用いたインストールを行います。
[ウィンドウ]-[設定]でEclipseの設定画面を開き、ツリーの部分に[PMD]が表示されていればインストールが成功しています。
PMDでは自動実行と手動実行の2つの実行方法があります。
それぞれの実行方法について下記の手順にて利用します。
●Just In Timeで実行
・ビルドパスの設定
ソースコードを保存したタイミングでPMDが実行されるように設定を行います。[プロジェクト]メニューの[プロパティ]を選択して表示されるプロジェクトのプロパティ画面(図1)にて、PMDを選択し、[Enable PMD]のチェックボックスをチェックします。利用できるルール一覧が表示されるので、チェックボックスのチェックを行い、使用するルールを設定します。
・問題ビューの確認
Eclipse環境にてPMDでチェックされた内容を正しく表示するために問題ビューの設定を確認します。問題ビューのフィルターのアイコンをクリックし、フィルターの設定のダイアログを表示(図3)、タイプフィールドで表示されたPMDに関連する3つの項目がチェックされているか確認します。
●手動で実行
・コンテキストメニューから呼び出し
パッケージエクスプローラから添削対象の選択を行った状態で、右クリックにより、[PMD]-[Check Code With PMD]を実行します。
・解析結果の確認
PMDによる解析結果は、[Violations Outline]と[Violations Overview]に表示されます。基本は[Violations Outline]で表示されるエラーメッセージ、行番号を基に対象となるコードの問題点を確認します。
・解析結果への対処
[Violations Outline]で表示されるメッセージを右クリックし、以下のいずれかの操作を行います。
Copyright © ITmedia, Inc. All Rights Reserved.