PDM

PMD

来源网址:http://wenda.tianya.cn/question/497921dba4731b8f

D:\软件-zlp\pmd-bin-4.2.5\pmd-4.2.5\bin>java -jar ..\lib\pmd-4.2.5.jar E:\代码\src text rulesets/unusedcode.xml

rulesets/internal/all-java.xml表示所有的规则

-reportfile 1.txt将结果输出到文档中

Jtest 、FindBugs、PMD

http://wenku.baidu.com/view/2b52ced13186bceb19e8bb9b.html?re=view

http://blog.csdn.net/sadamdiyi/article/details/6073694

http://www.cnblogs.com/flyme/archive/2011/09/09/2172548.html

http://my.oschina.net/u/2258637/blog/342730

多个工具比较:http://www.oschina.net/question/129540_23043

需要学习一点java基础,java  jdk环境的搭建,Eclipse的基本使用

findbugs:C:\My Directory>%FINDBUGS_HOME%\bin\findbugs.bat -gui

findbugs:http://blog.csdn.net/song198710/article/details/6500965

http://wenku.baidu.com/link?url=dluPWnkv3bINtb0ndbf_9qwpGsvsZxlpDHzWFRC8_oDI7G5pRUg2-K83TGPI93HQ8kb7cvIdVt-CunOhTC22AtCqRAVEDmHoM26K2msgQ9a

http://www.blogjava.net/pure/archive/2009/09/30/296989.html

http://blog.csdn.net/song198710/article/details/6500962bug分析记录

http://wenku.baidu.com/link?url=dluPWnkv3bINtb0ndbf_9qwpGsvsZxlpDHzWFRC8_oDI7G5pRUg2-K83TGPI93HQ8kb7cvIdVt-CunOhTC22AtCqRAVEDmHoM26K2msgQ9a

设置:http://wenku.baidu.com/link?url=RHUk4AXayyKVgwcqN7nCt5cDFN7UCpAEOVsc1yOB76QKbzWa74VjnldHSYKrJqVbJ9kKOdG_UgXv3oJVdGU4c9itCFTC0yXGLKskxcH0oAi

PMD规则(转载)

来源网址:http://www.ibm.com/developerworks/cn/java/j-pmd/

PMD 包含 16 个规则集,涵盖了 Java 的各种常见问题,其中一些规则要比其他规则更有争议:

传递哪个名称?

对于在命令行中传递的规则名称,没有详细的文档记录。有时需要试一下并产生一些错误,您才能清楚这些名称。在这里,圆括号中给出的名称是可以使用的。

基本(rulesets/basic.xml)—— 规则的一个基本合集,可能大多数开发人员都不认同它:catch块不该为空,无论何时重写equals(),都要重写hashCode(),等等。

命名(rulesets/naming.xml)—— 对标准 Java 命令规范的测试:变量名称不应太短;方法名称不应过长;类名称应当以小写字母开头;方法和字段名应当以小写字母开头,等等。

未使用的代码(rulesets/unusedcode.xml)—— 查找从未使用的私有字段和本地变量、执行不到的语句、从未调用的私有方法,等等。

设计(rulesets/design.xml)—— 检查各种设计良好的原则,例如:switch语句应当有default块,应当避免深度嵌套的if块,不应当给参数重新赋值,不应该对 double 值进行相等比较。

导入语句(rulesets/imports.xml)—— 检查 import 语句的问题,比如同一个类被导入两次或者被导入java.lang的类中。

JUnit 测试(rulesets/junit.xml)—— 查找测试用例和测试方法的特定问题,例如方法名称的正确拼写,以及suite()方法是不是 static 和 public。

字符串(rulesets/string.xml)—— 找出处理字符串时遇到的常见问题,例如重复的字符串标量,调用String构造函数,对String变量调用toString()方法。

括号(rulesets/braces.xml)—— 检查for、if、while和else语句是否使用了括号。

代码尺寸(rulesets/codesize.xml)—— 测试过长的方法、有太多方法的类以及重构方面的类似问题。

Javabean(rulesets/javabeans.xml)—— 查看 JavaBean 组件是否违反 JavaBean 编码规范,比如没有序列化的 bean 类。

终结函数(finalizer)—— 因为在 Java 语言中,finalize()方法不是那么普遍(我上次编写这个代码也经是好多年前的事了),所以它们的使用规则虽然很详细,但是人们对它们相对不是很熟悉。这类检查查找finalize()方法的各种问题,例如空的终结函数,调用其他方法的finalize()方法,对finalize()的显式调用,等等。

克隆(rulesets/clone.xml)—— 用于clone()方法的新规则。凡是重写clone()方法的类都必须实现Cloneable,clone()方法应该调用super.clone(),而clone()方法应该声明抛出CloneNotSupportedException异常,即使实际上没有抛出异常,也要如此。

耦合(rulesets/coupling.xml)—— 查找类之间过度耦合的迹象,比如导入内容太多;在超类型或接口就已经够用的时候使用子类的类型;类中的字段、变量和返回类型过多等。

严格的异常(rulesets/strictexception.xml)—— 针对异常的测试:不应该声明该方法而抛出java.lang.Exception异常,不应当将异常用于流控制,不应该捕获Throwable,等等。

有争议的(rulesets/controversial.xml)—— PMD 的有些规则是有能力的 Java 程序员可以接受的。但还是有一些争议。这个规则集包含一些更有问题的检验,其中包括把 null 赋值给变量、方法中有多个返回点,以及从sun包导入等。

日志(rulesets/logging-java.xml)—— 查找java.util.logging.Logger的不当使用,包括非终状态(nonfinal)、非静态的记录器,以及在一个类中有多个记录器。

您可以一次用多个规则集进行检查,只需在命令行中用逗号分隔规则集名称即可:

$ /usr/pmd-2.1/etc/pmd.sh ~/Projects/XOM/src html

rulesets/design.xml,rulesets/naming.xml,rulesets/basic.xml

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容