Pocket

こんにちは、maruchangです。

前回の続きで、今回もJenkinsのレポートプラグインをご紹介します。

PMD Plugin

PMD Pluginは、Javaソースコードを検査して、下記にあげる問題になりそうな箇所をレポートするプラグインです。

  • 何も記述されていない、無記入のtry/catch/finally/switchステートメント
  • 未使用のローカル変数、パラメーター、プライベートメソッド
  • 非効率な使い方をしているString/StringBuffer
  • 不要なif文、for文、while文
  • コピー&ペーストされた重複コード

サンプルを掲載したかったのですが、警告を出せるコードを持ちあわせていませんでした。実際に設定してみて、結果をご確認いただければと思います。

PMD Pluginのレポートを出力するには、pom.xmlに以下の内容を追加します。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    ・・・
    <build>
        ・・・
        <pluginManagement>
            <plugins>
                ・・・
                <plugin>
                    <groupIdorg.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>2.7.1</version>
                </plugin>
                ・・・
            </plugins>
        </pluginManagement>
    </build>
    ・・・
    <reporting>
        <plugins>
            ・・・
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>pmd</report>
                            <report>cpd</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            ・・・
        </plugins>
    </reporting>
    ・・・
</project>

次に、プラグインの管理画面で、”PMD Plug-in”と”Static Analysis Utilities”をインストールします。インストール後、ジョブの設定画面を開くと、ビルド設定の中に”PMD警告の集計”があるので、チェックをいれます。高度な設定の中にある”常に実行”にチェックを入れると、ビルドの成功失敗に関わらずレポーティングされるようになります。
最後に、ビルドの”ゴールとオプション”に”clean pmd:pmd”を設定して、保存ボタンを押します。ビルドを実行すると、結果としてPMD警告が出力されます。
他に、Rule Setsというものを設定すると、レポーティング対象とする条件を変更することができます。詳しくは、下記のサイトをご参照ください。
http://maven.apache.org/plugins/maven-pmd-plugin/examples/usingRuleSets.html

DRY Plugin

DRY PluginのDRYは、Don’t repeat yourselfの略でDRY原則と呼ばれています。要は、同じこと(コーディングやドキュメンテーションなど)を繰り返さないということです。このプラグインでは、重複コードをレポートしてくれます。下記にサンプルを掲載しておきます。

dry

DRY Pluginのレポートを出力するには、プラグインの管理画面で、”Duplicate Code Scanner Plug-in”と”Static Analysis Utilities”をインストールします。また、前項で説明したPMD Pluginをインストールしておき、reportSet内でcpdを出力するように設定しておきます。インストール後、ジョブの設定画面を開くと、ビルド設定の中に”重複コード分析の集計”があるので、チェックをいれます。高度な設定の中にある”常に実行”にチェックを入れると、ビルドの成功失敗に関わらずレポーティングされるようになります。
最後に、ビルドの”ゴールとオプション”に”clean site”を設定して、保存ボタンを押します。ビルドを実行すると、結果として重複コード警告が出力されます。

Task Scanner Plugin

Task Scanner Pluginは、Javaコード中にあるTODOやFIXME、@deprecatedをレポートするプラグインです。サンプルを掲載したかったのですが、警告を出せるコードを持ちあわせていませんでした。実際に設定してみて、結果をご確認いただければと思います。

Task Scanner Pluginのレポートを出力するには、プラグインの管理画面で、”Task Scanner Plug-in”と”Static Analysis Utilities”をインストールします。インストール後、ジョブの設定画面を開くと、ビルド設定の中に”未解決タスクの集計”があるので、チェックをいれます。高度な設定の中にある”常に実行”にチェックを入れると、ビルドの成功失敗に関わらずレポーティングされるようになります。また、集計対象や集計対象外にファイルパターンを設定しておくことができます。集計対象に”**/*.java”、集計対象外に”**/*Test.java”に設定しておけば、Testクラス以外のクラスファイルがレポート対象になります。
最後に、ビルドの”ゴールとオプション”に”clean site”を設定して、保存ボタンを押します。ビルドを実行すると、結果として重複コード警告が出力されます。

最後に。

いかがでしたか?2回にわたってJenkinsのレポート系プラグインを紹介させていただきました。Jenkinsにはたくさんのプラグインが登録されています。その数、実に400個以上です!レポート系プラグインも数多く登録されています(JMeterの結果を集計するプラグインや、ディスクスペースの利用状況など)。みなさんのプロジェクトに必要なプラグインをいろいろインストールして試してみてください。きっと、さらに便利に効率的に、みなさんの開発作業をサポートしてくれるはずです。

それではまた!