Spring Boot 2.4.x の Web アプリを 2.5.x へバージョンアップする ( その7 )( PMD を 6.32.0 → 6.38.0 へバージョンアップする )
概要
記事一覧はこちらです。
- 今回の手順で確認できるのは以下の内容です。
- PMD を 6.32.0 → 6.38.0 へバージョンアップします。
参照したサイト・書籍
目次
手順
build.gradle を変更する
pmd { toolVersion = "6.38.0" sourceSets = [project.sourceSets.main] ignoreFailures = true consoleOutput = true ruleSetFiles = rootProject.files("/config/pmd/pmd-project-rulesets.xml") ruleSets = [] }
toolVersion = "6.32.0"
→toolVersion = "6.38.0"
に変更します。
Gradle Tool Window の左上にある「Refresh all Gradle projects」ボタンをクリックして更新した後、clean タスク実行 → Rebuild Project 実行 → build タスクを実行すると PMD で警告が出ました。
警告の原因を取り除く
警告は全部で 2種類、12箇所です。
Logger calls should be surrounded by log level guards.
Logger calls should be surrounded by log level guards. のリンクをクリックすると GuardLogStatement のページが開きました。
ログ出力時に isXxxEnabled
メソッドでログレベルの有効性をチェックすべきという警告なのですが、実際に指摘された箇所を見ると info や error メソッドを呼び出してログを出力している箇所だったので isXxxEnabled
メソッドを付けるのは避けたいかな。。。
今回は config/pmd/pmd-project-rulesets.xml に設定を追加して、trace, debug のログ出力だけこのチェックが実行されるようにします。
<rule ref="category/java/bestpractices.xml"> <!-- CommentRequired はここでは exclude し、下で別途定義する --> <exclude name="GuardLogStatement"/> </rule> <rule ref="category/java/bestpractices.xml/GuardLogStatement"> <properties> <property name="logLevels" value="trace,debug"/> <property name="guardsMethods" value="isTraceEnabled,isDebugEnabled"/> </properties> </rule>
The constructor 'PagenationHelper(Page)' has a cognitive complexity of 15, current threshold is 15
The constructor 'PagenationHelper(Page)' has a cognitive complexity of 15, current threshold is 15 のリンクをクリックすると CognitiveComplexity のページが開きました。
src/main/java/ksbysample/webapp/lending/helper/page/PagenationHelper.java のメソッドが複雑なので警告が出ているのですが、今回はメソッドに @SuppressWarnings("PMD.CognitiveComplexity")
を付与して警告が出ないようにします。
clean タスク実行 → Rebuild Project 実行 → build タスクを実行すると無事 "BUILD SUCCESSFUL" のメッセージが出力されました。
履歴
2021/09/03
初版発行。