FindBugs
FindBugs是一个寻找bug的工具,更具体的说FindBugs是一个静态检测Java代码的工具,可以找到代码中的一些潜在bug,比如说NullPointerException,或者是一些流或者数据库没有关闭的问题.
出自官方的一句话(Provides static byte code analysis to look for bugs in Java code from within IntelliJ IDEA.)
作用
- 常见代码错误,序列化错误
- 可能导致错误的代码,如空指针引用
- 国际化相关问题:如错误的字符串转换
- 可能受到的恶意攻击,如访问权限修饰符的定义等
- 多线程的正确性:如多线程编程时常见的同步,线程调度问题。
- 运行时性能问题:如由变量定义,方法调用导致的代码低效问题
安装方法
在插件目录下查找FindBugs
直接安装,成功之后,下面的菜单栏会有一个FindBugs的菜单
使用方法
开始分析你的应用,点击Analyze Project Files
然后会分析出应用中存在的Bug
设置
在setting里面还可以对FindBugs做一些设置(这里就不做详细的介绍了)
自定义规则
FindBugs可以在gradle里面做自定义任务
(注意需要在gradle里面添加 apply plugin:’findbugs’)
在这里配置了规则findbugs-filter.xml 以及报告生成的路径findbugs.xml
task findbugs(type: FindBugs, dependsOn: "assembleDebug") {
ignoreFailures = false
effort = "max"
reportLevel = "high"
excludeFilter = new File("$configDir/findbugs/findbugs-filter.xml")//这里是自定义的规则
classes = files("${project.rootDir}/app/build/intermediates/classes")
source 'src'
include '**/*.java'
exclude '**/gen/**'
reports {
xml.enabled = false
html.enabled = true
xml {
destination "$reportsDir/findbugs/findbugs.xml" //这里是报告产生的路径
}
html {
destination "$reportsDir/findbugs/findbugs.html" //这里是报告产生的路径
}
}
classpath = files()
}