Eclipse(Gradleプロジェクト)のGradleタスクでPMDを実行してレポート出力する方法

Eclipse(Gradleプロジェクト)のGradleタスクでPMDを実行してレポート出力する方法

STS(Eclipse)のPMDプラグインではなく、GradleタスクでPMDを実行して循環的複雑度のチェックをしたい。

pmdはプラグインを追加すれば使えます。

以下のリンクページを参考にして、build.gradleを修正します。

https://docs.gradle.org/current/userguide/pmd_plugin.html

以下、ruleSetsの一覧です。

https://pmd.github.io/pmd-6.20.0/pmd_rules_java.html

CyclomaticComplexityだけ適用するケース

rulesetのさらに細かいルールだけ適用したい場合は、「category/java/design.xml/CyclomaticComplexity」というように記載してあげればよいです。CyclomaticComplexityは、循環的複雑度についてチェックをしたい場合になります。

https://pmd.github.io/pmd-6.20.0/pmd_rules_java_design.html#cyclomaticcomplexity

プロジェクト単位でPMDを使用可能にする

プロジェクトを右クリックして、「PMDを使用可能にする」にチェックを入れます。

Spring Boot(Gradleプロジェクト)のGradleタスクでPMDを実行してレポート出力する方法

言語「Java」、ルール「CyclomaticCoplexity」にチェックを入れておきます。

「適用して閉じる」でリアルタイムに反映されます。

Gradleタスクでレポート出力する

Gradleタスクのbuildを実行すると、pmdMain,pmdTestタスクが実行されます。

Spring Boot(Gradleプロジェクト)のGradleタスクでPMDを実行してレポート出力する方法

結果のレポートは、build\reports\pmd配下にmain.html,test.htmlとして出力されます。

Spring Boot(Gradleプロジェクト)のGradleタスクでPMDを実行してレポート出力する方法

以下、main.htmlです。警告がなければ、わかりにくいですが表示はこれだけのようです。

Spring Boot(Gradleプロジェクト)のGradleタスクでPMDを実行してレポート出力する方法

とりあえず「java-codesize」ルールにしています。後方互換性のために存在しますが非推奨のようです。

https://pmd.github.io/pmd-6.20.0/pmd_rules_java.html#additional-rulesets

ルールをカスタマイズする

ルールはデフォルト値がありますが、これをカスタマイズしたいことが往々にあります。

方法はいろいろあると思いますが、一旦プロジェクトルートにpmd-settings.xmlファイルを作成します。

中身はこんな感じです。

循環的複雑度はデフォルト10ですが、3に変更しました。

このファイルをbuild.gradleで読み込みます。

pmdタスクのところを以下のように書きます。

filesで先ほど作成したファイルを読み込むのと、ruleSetsを空の配列にします。

これでカスタマイズが完了です。

PmdMainタスクがエラーになる

PmdMainタスクがエラーになる場合はプロキシ設定が怪しいです。iniファイルでプロキシ設定をしていたのですが、それではエラーとなってしまったので、Eclipseの設定でプロキシ設定したら解決しました。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA