FunTester Intellij 静态代码扫描插件 SpotBugs

FunTester · 2020年11月23日 · 1167 次阅读

最近要做Java静态扫描的部分工作,之前是在Jenkins上使用findbugs插件完成的,但是由于现在Jenkins权限收回和Java代码权限的放开(我也搞不懂这两者的关联性),目前打算在本地完成静态代码扫描工作。

选来选取还是选择在Intellij中用插件来完成,印象中有一个FindBugs-IDEA的插件,网上搜到的资料好多也是推荐这个插件,但是从Intellij插件库里面并没有找到,而找到了一个QAPlug - FindBugs的插件,看样子是完成了同样的功能。

但是这两个插件面临同样的问题:没有跟进Intellij的更新,支持的版本上限比较旧了,这里我查到的FindBugs-IDEA的官方信息最后一次更新是在2016年10月17日,显然,这个不能用了,这也是为什么我在Intellij的插件库中搜索关键词findbugsBUG不显示改插件的原因。

QAPlug - FindBugs这个插件最近一次维护的时间是2018年4月23日,所以他支持的版本上限兼容性更改以支持 IntelliJ IDEA 2018.1.1,之后的版本是不支持的,手头使用新版的Intellij的同学基本要放弃这个了。

  • 以上两个插件官方信息来看并没有近期的升级维护计划。

由此我又找到了SpotBugs,以下是官方的资料截取:

IntelliJ SpotBugs插件提供静态字节代码分析,以从IntelliJ IDEA中查找Java代码中的错误。SpotBugsJava的缺陷检测工具,它使用静态分析来查找 400 多种错误模式,例如空指针取消引用,无限递归循环,对Java库的错误使用和死锁。SpotBugs可以识别大型应用程序中的数百个严重缺陷(通常每 1000-2000 行非注释源语句中大约有 1 个缺陷)。

使用方法就不再赘述,和其他插件的下载安装方法一致,这里简单截取一个BUG的截图,大家感受一下。

学好英文实在太重要了

在源码的左侧栏中会显示不同颜色的小虫子,区分不同等级的BUG,据我目前自测的情况,大部分都是规范,实际操作起来需要先去解决错误信息,再去解决可疑问题,因为可疑的实在太多了。

本次扫描一共检测了155classes文件,找到了143BUG

  • 本文提及的三个插件的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,原创分享爱好者,腾讯云、开源中国和掘金社区首页推荐,知乎八级强者,欢迎关注、交流,禁止第三方擅自转载。

FunTester 热文精选

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册