PMD
PMD是一个源代码分析器。它发现常见的编程缺陷,如未使用的变量,空catch块,不必要的对象创建等等。
配置
要添加pmd到你的android项目那么需要创建script-pmd.gradle文件。
apply plugin:'pmd task pmd(type: Pmd){ ruleSetFiles.files("$project.rootDir/tools/rules-pmd.xml") source·fileTree('src/main/java/') reports ( xml.enabled=false html.enabled=true html.destination="$project.buildDir/outputs/pmd/pmd.html"
重要的pmd选项:
- ruleSetFiles —pmd规则集文件的路径,你可以在其中压制问题并定义要跟踪的问题。
- source —源代码的路径
- html.destination —html报告生成的路径
将脚本script-pmd.gradle导入到build.gradle文件。
apply plugin:'com.android.application' apply from:"$project.rootDir/tools/script-pmd.gradle"
测试
为了测试,我们将创建以下方法。
//MainActivity.java ... private void someMethod(int a, int b, int c, int d) { if(a>b){ if(b>c){ if(c>d){ if(d>a){ //some 1ogic
重新构建你的项目,然后使用./gradlew pmd命令运行pmd。如果它发现一些问题,你会看到类似下面的输出。
当你打开pmd.html报告文件,你将看到问题列表与说明和如何解决它们的建议。
如果你想忽略此问题,请将以下规则添加到rules-pmd.xml文件中。
<?xml version="1.e"?> <ruleset xmlns:xsi-"http://www.w3.org/2001/XMLSchema-instance" xmlns-"http://pmd. sourceforge .net/ruleset/2.0.0' xsiischemalocation-"http://pmd. sourceforge .net/ruleset/2.e.e http://pmd. sourceforge . net/ruleset <rule ref="rulesets/java/basic.xml" /> crule ref="rulesets/java/braces.xml" /> <rule ref="rulesets/java/strings.xml" /> <rule ref=" rulesets/java/design.xml" > <exclude name="AvoidDeeplyNestedIfStmts"/> </rule> <rule ref-" rulesets/java/unusedcode.xml" /> </ruleset>
注意:还有其他方法压制pmd警告。有关pmd的更多信息,请访问官方网站。