最近要做Java
静态扫描的部分工作,之前是在Jenkins
上使用findbugs
插件完成的,但是由于现在Jenkins
权限收回和Java
代码权限的放开(我也搞不懂这两者的关联性),目前打算在本地完成静态代码扫描工作。
选来选取还是选择在Intellij
中用插件来完成,印象中有一个FindBugs-IDEA的插件,网上搜到的资料好多也是推荐这个插件,但是从Intellij
插件库里面并没有找到,而找到了一个QAPlug - FindBugs的插件,看样子是完成了同样的功能。
但是这两个插件面临同样的问题:没有跟进Intellij
的更新,支持的版本上限比较旧了,这里我查到的FindBugs-IDEA的官方信息最后一次更新是在2016年10月17日,显然,这个不能用了,这也是为什么我在Intellij
的插件库中搜索关键词findbugs
和BUG
不显示改插件的原因。
QAPlug - FindBugs这个插件最近一次维护的时间是2018年4月23日,所以他支持的版本上限兼容性更改以支持 IntelliJ IDEA 2018.1.1,之后的版本是不支持的,手头使用新版的Intellij
的同学基本要放弃这个了。
由此我又找到了SpotBugs,以下是官方的资料截取:
IntelliJ SpotBugs
插件提供静态字节代码分析,以从IntelliJ IDEA
中查找Java
代码中的错误。SpotBugs
是Java
的缺陷检测工具,它使用静态分析来查找 400 多种错误模式,例如空指针取消引用,无限递归循环,对Java
库的错误使用和死锁。SpotBugs
可以识别大型应用程序中的数百个严重缺陷(通常每 1000-2000 行非注释源语句中大约有 1 个缺陷)。
使用方法就不再赘述,和其他插件的下载安装方法一致,这里简单截取一个BUG
的截图,大家感受一下。
学好英文实在太重要了
在源码的左侧栏中会显示不同颜色的小虫子,区分不同等级的BUG
,据我目前自测的情况,大部分都是规范,实际操作起来需要先去解决错误信息,再去解决可疑问题,因为可疑的实在太多了。
本次扫描一共检测了155个classes
文件,找到了143个BUG。
Intellij
地址:https://plugins.jetbrains.com/plugin/14014-spotbugs
https://plugins.jetbrains.com/plugin/4597-qaplug--findbugs
https://plugins.jetbrains.com/plugin/3847-findbugs-idea
spotbugs
检测出来的BUG
是非常准确的,相比findbugs
要优秀很多,已经在团队中推广。公众号FunTester,原创分享爱好者,腾讯云、开源中国和掘金社区首页推荐,知乎八级强者,欢迎关注、交流,禁止第三方擅自转载。