去年做项目团队的开发规范管理,整理了相关工具的使用方法,其中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/

PMD和FindBug的代码质量检查_第1张图片

(4)选择适应的版本;

PMD和FindBug的代码质量检查_第2张图片

(5)安装后重启即可。

(6)PMD窗体显示到页面:widows—>open perspective—>other

 

2PMD检查代码

PMD检查方式:对一个项目进行检查,对项目的下级文件进行检查,对展开的类进行检查。

检查方法:右键点击将要检查的文件选择PMD选项,选择Check Code With PMD选项进行代码检查。错误信息显示在violation  Overview框体中,如下图所示:

PMD和FindBug的代码质量检查_第3张图片

注:Element:检查的文件

#Violation/LOCline 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框体中显示。右键点击框体中显示的警告信息时,有四个功能选项。

PMD和FindBug的代码质量检查_第4张图片


1 Show details:显示错误的详细信息,如下图所示:

PMD和FindBug的代码质量检查_第5张图片

 

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 PreferencesJava 如果显示 FindBugs 则安装成功,否则安装失败

PMD和FindBug的代码质量检查_第6张图片

2、检查代码

在你要检测bugProject Package以及 Class上右击  如下图:

PMD和FindBug的代码质量检查_第7张图片

检测结束之后 bug信息将会显示在 Bug Explorer 中如下图:

PMD和FindBug的代码质量检查_第8张图片

点击灰色的小虫子会把bug信息展开,双击红色的小虫子会定位到bug的位置。