checkstyle pmd findbugs工具比较(转)

检查规则:

 三者都提供了很多检查规则,且可以生成检查报告。并且利用这些报告,能够提取里面涉及的规则,在其他地方使用。

  PMD的自定义规则更加灵活,可使用XPath定义各种规则。  

  checkstyle是在原来较为严格的规则基础上做定制和修改,无法定义新规则。  

  findbugs只能在原来的基础上做定制,无法修改规则,findbugs若要定义新规则,需要引入jar包。  

 
检查对象:

   PMD对.java原代码进行检查,将源代码解析成抽象语法树(AST),检查源代码中潜在的问题。
      主要包括: 空try/catch/finally/switch语句块 ,未使用的局部变量、参数和private方       法,空if/while语句 ,过于复杂的表达式,如不必要的if语句等,复杂类。  
   
   CheckStyle对源代码进行检查。主要包括: Javadoc注释 ,命名规范 ,多余没用的Imports,Size度量,      如过长的方法,缺少必要的空格Whitespace,重复代码。

   
   FindBugs检查.class文件,基于Bug  Patterns概念,查找javabytecode(.class文件)中的潜在bug。
     主要tecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==而不是equals)等。    

使用目的:  

  PMD:使代码更简洁明了,方法、变量命名更加规范,增强可读性。
 
  CheckStyle:规范代码的格式,统一代码风格。  

  FindBugs:找出代码中存在的明显的可能导致bug的缺陷。

你可能感兴趣的:(findbugs,checkstyle,pmd)