PMD介绍
PMD是扫描 Java 源码并查找以下潜在问题:
- 从未用过的局部变量
- 空捕捉块(catch block)
- 从未用过的参数
- 空if声明
- 重复的导入声明
- 从未用过的私有方法
- 孤立的类
- 短型或长型变量及方法名
PMD 具有下列软件的插件:JEdit, JBuilder, NetBeans/Sun ONE Studio, IntelliJ IDEA, TextPad, Maven, Ant, Eclipse, Gel, Emacs
1、PMD 的含义
坦率地说,我们其实也不知道PMD的真正意义所在 (我们只是认为这三个字母拼在一起较为好听) 。但是,我们提出了计算行业的几种解释以供参考。
PMD:
- Pretty Much Done (几乎无所不能)
- Project Mess Detector (项目故障探测器)
- Project Monitoring Directives (项目监视器)
- Protein Mutant Database (基因突变数据库)
- Project Meets Deadline (项目到期)
- Programming Mistake Detector (程序错误检测器)
- Pounds Mistakes Dead (彻底纠错)
- PMD Meaning Discovery (PMD含义探索)
2、PMD运行机制
PMD 根据规则核对源码并产生一个报告。具体如下:
- 有文件名和RuleSet传入PMD
- PMD将通过该文件的InputStream传递给由JavaCC-生成的解析器
- PMD 从解析器取得指向抽象语法树(AST)的引用
- RuleSet 中的每个规则都遍历AST 并检查错误
- 报告内容包括RuleViolations以及符合XML 、HTML 或其它格式的代码/文件
PMD用法
1.要使用PMD,先要下载PMD插件,在Eclipes点HELP,选择Softwareupdates,然后选Available Software 而后就点右边的Add Site 将 http://pmd.sourceforge.net/eclipse/ -输入,-点击http://pmd.sourceforge.net/eclipse/ 会出现PMD for Eclipse2与 PMD for Eclipse 3 选择其中一个PMD for Eclipse2 然后就点Install,这样配置就行了。
2. 但是其规范太过于严格,因尔我们只能采用其相对于大众而言的一些规范,然而我们要去http://www.springside.org.cn/download.php 下 载一个springside3.0.4.all.in.one,,然后在项目->属性->PMD中,将 springside.0.4.all.in.one/tools/configures/pmd /springside3_ruleset.xml 导入到项目中。更改设置后,需要重新export文件,并clear原来的标签,重新再check一次。
3.上面这些都弄好了之后,如果你发现他不能在你写代码的时候及时给予提示,那就是你在倒入 springside.0.4.all.in.one/tools/configures/pmd /springside3_ruleset.xml时,然后要把Enable PMD 与Include derived files 两个都选上就可以了。
4.这些配好了之后,在你选择工程点击右键,选择PMD之后有几个选项:
Generate reports: 生成报告,生成在你的工程目录下的reports里
Clear violation reviews
Find suspect Cut And Paste..:是检查指种后缀的文件。如JAVA,JSP等
Check Code With PMD 就是检查代码。
做好以上步骤以后就会在项目中静态的检测你每一行的代码,如果有不符合要求的会出现 警告。