本篇文章给大家分享的是有关如何进行PMD和FindBug的代码质量检查,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
去年做项目团队的开发规范管理,整理了相关工具的使用方法,其中PMD、FindBug、CheckStyle是最常用的几个工具,当然这类工具不能完全替代“走查”。
工具 |
目的 |
检查项 |
FindBugs 检查.class |
基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug |
主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==,而不是equals)等 |
PMD 检查源文件 |
检查Java源文件中的潜在问题 |
主要包括: 空try/catch/finally/switch语句块 未使用的局部变量、参数和private方法 空if/while语句 过于复杂的表达式,如不必要的if语句等 复杂类 |
CheckStyle 检查源文件 主要关注格式 |
检查Java源文件是否与代码规范相符 |
主要包括: Javadoc注释 命名规范 多余没用的Imports Size度量,如过长的方法 缺少必要的空格Whitespace 重复代码 |
一、PMD——Java代码静态分析工具
1、在eclipse中安装PMD
(1)Eclipse中,选择Help->Install New Software;
(2)在弹出的窗口点击Add…;
(3)输入Name,输入下载地址:https://sourceforge.net/projects/pmd/files/pmd-eclipse/update-site/
(4)选择适应的版本;
(5)安装后重启即可。
(6)PMD窗体显示到页面:widows—>open perspective—>other
2、PMD检查代码
PMD检查方式:对一个项目进行检查,对项目的下级文件进行检查,对展开的类进行检查。
检查方法:右键点击将要检查的文件选择PMD选项,选择Check Code With PMD选项进行代码检查。错误信息显示在violation Overview框体中,如下图所示:
注:Element:检查的文件
#Violation/LOC(line of code缩写)为:警告个数/源代码行数x1000。
#Violations/Method:警告个数除以方法个数(类中每个方法中的平均错误)
#Project:所在项目
右键点击框体的任意位置显示4个选项按钮对应的功能为
1) Filter Resource:是否展示下列工程
2) Filter Priorities: 想要展示的警告等级(5个等级,红色为最严重的警告)
3) Presentation Type:展示的结构
4) clear PMD violations:清除Violations Outline内的信息
3、检查代码规范
双击“Element“列下面的错误元素,显示警告所在的类文件。错误的详细信息将在Violations Outline框体中显示。右键点击框体中显示的警告信息时,有四个功能选项。
1) Show details:显示错误的详细信息,如下图所示:
2) Mark as reviews : 标记警告信息;
3) Remove Violation(s) :清除错误信息;
4) clear violations reviews:清除之前标记。
4、生成报告
右键点击工程,选择"PMD"->"Generatereports",在当前工程的根目录下生成一个reports目录,该目录下存放了代码检查的结果报告,根据报告,可以定位错误所处的包,所处的类,以及错误的级别,触发的规则集及规则,便于我们统计。
二、Findbugs
1、在eclipse中安装Findbugs
(1)从官方网站http://findbugs.sourceforge.net/downloads.html 下载 edu.umd.cs.findbugs.plugin.eclipse_3.0.0.20140706-2cfb468.zip包;
(2)将压缩文件里面的内容解压到myeclipse安装目录下eclipse/plugins 目录下;
(3)打开Esclipse →Preferences→Java 如果显示 FindBugs 则安装成功,否则安装失败
2、检查代码
在你要检测bug的Project 或Package以及 Class上右击 如下图:
检测结束之后 bug信息将会显示在 Bug Explorer 中如下图:
点击灰色的小虫子会把bug信息展开,双击红色的小虫子会定位到bug的位置。
以上就是如何进行PMD和FindBug的代码质量检查,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/204675.html