静态代码检查工具

时间:2021-08-19 16:20:00

前言:
PMD是一款静态代码分析工具,它能够自动检测各种潜在缺陷以及不安全或未优化的代码。
PMD更多地是集中在预先检测缺陷上,它提供了高度可配置的丰富规则集,用户可以方便配置对待特定项目使用那些规则。

安装及使用:
1.在Eclipse中 安装 PMD插件运行方式
ECLIPSE菜单 > HELP > Install New Software >
弹出窗口中在 work with中输入 PMD - http://sourceforge.net/projects/pmd/files/pmd-eclipse/update-site/
,单击后面的”增加” > 确认>
会自动下载插件,下载需要点时间,>选择安装 subclipse 3 即可;
静态代码检查工具

2.激活PMD插件。Ecplise的菜单Project->Properties->PMD,在这个窗口选择要应用的规则,并指定相对重要性,为特定项目详细配置PMD,目前只需要选中Enable PMD复选框,保留默认规则集。

3.运行PMD。单击项目资源,右键->PMD->Check code with PMD。在Violation OverView视图中按问题严重程度列出PMD问题。在Violations outLinew右键show Details可以查看更详细的规则描述以及说明规则的示例代码。
(PMD可检测一个项目、类、单个文件等等)
静态代码检查工具

4.几种形式的检查结果
静态代码检查工具
静态代码检查工具
右键每条结果,可以进行几个操作
Show Details… :显示明细
Mark as reviewed:(标记为已审查)菜单项,这将向代码添加一个注释,以指示PMD在这里忽略此问题。
静态代码检查工具
Remove violation:可以手工纠正问题,并使用Remove violation(删除违例)直接从列表中删除此问题
clear violations reviews:清除之前 标记

PMD也可以直接检查一个项目,生成多种格式的报告文件
静态代码检查工具

静态代码检查工具
附录:

PMD附带了许多可以直接使用的规则
潜在的bug:空的try/catch/finally/switch语句
未使用的代码:未使用的局部变量、参数、私有方法等
可选的代码:String/StringBuffer的滥用
复杂的表达式:不必须的if语句、可以使用while循环完成的for循环
重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs
循环体创建新对象:尽量不要再for或while循环体内实例化一个新对象
资源关闭:Connect,Result,Statement等使用之后确保关闭掉
此外,还可以自定义规则,检查Java代码是否符合某些特定的编码规范。例如,你可以编写一个规则,要求PMD找出所有创建Thread和Socket对象的操作。 也可以根据实际情况更改自带规则的检查内容

PMD自带规则及自定义规则,有兴趣可自己研究下;
后续有时间在分享下;