IDEA 中配置 PMD 静态代码检查插件,提升你的代码质量

什么是 PMD

PMD 官网: PMD - An extensible cross-language static code analyzer. (https://pmd.github.io/)

PMD是一种开源分析 Java 代码错误的工具,它是一个静态代码检测工具(所谓的静态,就是在 Java 代码不运行时就可以进行检查)。通过 PMD 的一些规则,可以检查出代码中存在的问题,例如:

  • 可能存在的 BUG
    • 空的 try/catch/finally/switch 语句
  • 无效代码
    • 未使用的局部变量、参数、私有方法等
  • 可选的代码
    • String / StringBuffer 的滥用
  • 复杂的表达式
    • 不必须的 if 语句
    • 可以使用 while 循环完成的 for 循环
  • 重复的代码
    • 复制/粘贴代码意味着复制/粘贴 BUG

总而言之,降低潜在的代码风险,减少人工审核成本,提高编码质量。此外,你也可以自己自定义规则。

PMD 插件配置

1. 插件下载

IDEA 插件下载地址:PMDPlugin - Plugins | JetBrains(或是直接在插件市场搜索安装)

img

2. 选择从磁盘安装

img

3. 重启生效

img

4. 添加配置模板

img

示例模板:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8"?>
<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name=""
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
This is the PMD additional ruleset for TEAMMATES production code.
</description>
<exclude-pattern>.*/test/java/.*</exclude-pattern>
<exclude-pattern>.*/client/java/.*</exclude-pattern>
<exclude-pattern>.*.html</exclude-pattern>
<exclude-pattern>.*.jsp</exclude-pattern>
<exclude-pattern>.*.js</exclude-pattern>
<exclude-pattern>.*.xml</exclude-pattern>
<rule ref="category/java/bestpractices.xml/AvoidPrintStackTrace"/>
<rule ref="category/java/bestpractices.xml/SystemPrintln"/>
<rule ref="category/java/design.xml/AvoidThrowingRawExceptionTypes"/>
<rule ref="category/java/design.xml/SignatureDeclareThrowsException"/>
</ruleset>

5. PMD本地检查扫描

每次在代码上库,或者合并分之前就可以先进行一遍静态检查,降低提交到 GitLab 后代码检查异常的可能性,从而提升开发效率。

img

😎 自此,配置结束,可以开始你的 PMD 使用之旅了。