checkstyle/findbugs/pmd 是很好的代码检查工具,三者均有gradle plugin存在。 实际上很多IDE像Android Studio等早已集成了。
其中findbugs是依赖于编译生成的类文件的。
在gradle的编译脚本build.gradle里面,添加上述三种插件的使用脚本如下:
apply plugin: 'findbugs'
apply plugin: 'pmd'
apply plugin: 'checkstyle'
task checkstyle(type: Checkstyle){
configFile = file("google_android_checks.xml")
source = fileTree('src')
ignoreFailures = true
classpath = files()
}
task findbugs(type: FindBugs, dependsOn: 'compileDebugSources') {
classes = fileTree("build/intermediates/classes/debug/")
source = fileTree('src')
classpath = files()
ignoreFailures = true
//reportsDir = file("$project.buildDir/outputs/")
reportLevel = "medium"
effort = "max"
reports {
xml.enabled = true
html.enabled = false
}
}
task pmd (type: Pmd) {
ruleSets = [
'java-android',
'java-basic',
'java-braces',
'java-clone',
'java-codesize',
//'java-comments',
'java-controversial',
'java-coupling',
'java-design',
'java-empty',
'java-finalizers',
'java-imports',
'java-j2ee',
'java-javabeans',
'java-junit',
'java-logging-jakarta-commons',
'java-logging-java',
'java-migrating',
'java-naming',
'java-optimizations',
'java-strictexception',
'java-strings',
'java-sunsecure',
'java-typeresolution',
'java-unnecessary',
'java-unusedcode'
]
source = fileTree('src')
ignoreFailures = true
reports {
xml.enabled = true
html.enabled = false
}
}
运行gradle checkstyle findbugs pmd就会在reports目录下得到对应的结果,这里是xml文件。当然也可以是html格式, 但checkstyle不支持, 且gradle 2.8 支持的checkstyle 版本是5.9, 最新的版本已经是6.12了。。