代码检查之PMD
题图:from Google
什么是PMD?
与FindBugs类似,PMD也是一款Java代码静态检查工具。它可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。
PMD与FindBugs最主要的区别是PMD检查源文件,而FindBugs检查字节码。
PMD匹配模式
与FindBugs一样,PMD也允许自定义匹配模式。
虽然提供自定义功能,但是其自带的一系列规则也已经基本够用,自带规则如下:
以上每个xml中都定义了若干规范,如需查看只需下载源码包,在pmd-java/src/main/resources/rulesets/java/
目录下即可找到。
PMD提供两种方式定义匹配模式,java代码或者XPath表达式。如果真的有自定义匹配模式的需求,可以到官网查看编写文档(链接见附录)
Gradle中使用PMD插件
Gradle中同样集成了PMD插件。执行检测也只需要gradle pmdMain
|
|
属性说明:
PS:
如果不指定,Gradle默认使用basic.xml中的匹配,basic.xml详见源码包中pmd-java/src/main/resources/rulesets/java/basic.xml
附录
常用 Java 静态代码分析工具的分析与比较: http://www.oschina.net/question/129540_23043
如何编写PMD规则: https://pmd.github.io/pmd-5.4.1/customizing/howtowritearule.html
关于ruleSets的使用,PMD5.0以上需要加”java-“前缀: stackOverFlow问题链接