FindBugs是Java的一个静态代码(扫描bytecode)扫描器,其内置了很多的detector
,可以扫描出来很多代码中潜在存在的问题。
目前最新版本是3.0.1
插件
基于你项目的不同,可以使用不同平台IDE的插件来使用FindBugs,常见的有
- IDEA/Android Studio, Static Code Analysis using FindBugs (Android Studio)
- Eclipse, FindBugs插件的安装与使用
- Maven, Maven Findbugs Plugin集成
- Gradle, Static Code Analysis using FindBugs (Android Studio)
- Ant, Findbugs与ant结合
- Jenkins, Jenkins集成findbugs插件,实现静态代码分析
issue category
在扫描过代码之后,FindBugs会生成一份报告,出现的问题会被划分为以下的类别
- Dodgy code
- 可疑代码,如switch block没有default,在实例方法中修改静态字段
- Malicious code vulnerability
- 存在被恶意修改的风险,如public的成员变量没有使用final修饰
- Bad practice
- Correctness
- 如子类的字段覆盖了父类的字段,没有进行nullcheck
- Internationalization
- Security
- Performance
- 如没有被使用的方法或字段
- Multi-threaded correctness
- 多线程环境下可能存在的问题
- Experimental
所有的错误类型详见:FindBugs Bug Descriptions
过滤器
TO BE ADDED
参考
- IDEA/Android Studio, Static Code Analysis using FindBugs (Android Studio)
- Maven, Maven Findbugs Plugin集成
- Gradle, Static Code Analysis using FindBugs (Android Studio)
- Ant, Findbugs与ant结合
- Jenkins, Jenkins集成findbugs插件,实现静态代码分析
- FindBugs Bug Descriptions
- FindBugs™ - Find Bugs in Java Programs
- FindBugs,第 1 部分: 提高代码质量
- 常用 Java 静态代码分析工具的分析与比较
- FindBugs,一个不错的静态分析工具
- maven 插件findbugs源代码的解析