PMD插件在IntelliJ IDEA中可实时检测未关闭资源、空catch块、未使用变量等问题:安装后需启用并手动添加java-basic和java-unusedcode规则集,设置Scan level为“As You Type”实现边写边检,右键支持模块或单文件扫描,结果精准定位问题行。

在IntelliJ IDEA中快速定位Java项目里未关闭的数据库连接、空catch块、未使用变量等PMD可识别的潜在问题,避免代码提交后才被CI流水线拦截。
安装并启用PMD插件
打开IDEA → File → Settings → Plugins → Marketplace → 搜索“PMD” → 找到官方插件“PMD-IntelliJ” → 点击Install → 安装完成后重启IDEA。
重启后进入Settings → Tools → PMD → 勾选“Enable PMD support”,此时插件已激活但尚未加载规则集。
【必须手动指定ruleset路径,否则扫描始终为空】点击“Rulesets”右侧的+号 → 选择“Add built-in ruleset” → 勾选“java-basic”和“java-unusedcode” → 点击OK保存。
实时检测:边写边发现空catch块
新建一个Java类,输入以下代码:
try { doSomething(); } catch (Exception e) { }
光标离开该行后,编辑器立刻在catch块左侧出现黄色波浪线,悬停显示“EmptyCatchBlock” → 按Alt+Enter → 选择“Add comment explaining why catch block is empty”即可自动补全注释。
这一步依赖于Settings → Tools → PMD → “Scan level”设为“As You Type”,若设为“On Save”则需先保存文件才会触发。
批量扫描整个模块中的资源泄漏问题
第一步:确保当前项目已正确识别为Maven/Gradle项目(右下角无“Add Framework Support”提示)。
第二步:在Project工具窗口中右键点击目标模块名 → 选择“Run PMD Inspection” → 弹出对话框中保持默认范围(Module: xxx)→ 点击OK。
第三步:等待扫描完成,结果自动在“PMD Inspection”工具窗口中展开,按严重性降序排列。重点查看“CloseResource”类警告,它会精确定位到未调用close()的FileInputStream、Connection等对象声明行。
注意:若扫描结果为空,检查是否误勾了Settings → Tools → PMD → “Skip Test Sources”,而你的资源操作代码恰好写在test目录下。
右键快捷启动单文件深度扫描
方法一:在编辑器中打开任意.java文件 → 右键空白处 → 选择“Run PMD Inspection on Current File”。
方法二:在Project工具窗口中选中单个.java文件 → 右键 → “Run PMD Inspection”。
两种方式均跳过全局索引构建,响应更快,适合验证某个类是否还存在重复逻辑或过长方法等结构性问题。


















