每天一个脱发小技巧 | Eclipse环境下spotbugs的安装配置和详细使用方法

每天一个脱发小技巧 | Eclipse环境下spotbugs的安装配置和详细使用方法

SpotBugs介绍

SpotBugs是一个使用静态分析来查找Java代码中的bug的程序,对于初学者而言,SpotBugs是一个非常好的提高代码质量的工具,我们可以通过SpotBugs发现自己编程过程中的漏洞,提高编程水平。SpotBugs需要JRE(或JDK) 1.8.0或更高版本才能运行。但是,它可以分析为任何版本的Java(从1.0到1.9)编译的程序。

SpotBugs可以发现400+种类的bug,分为以下10种类型

  1. Bad practice 不佳实践(90余种):常见代码错误,用于静态代码检查时进行缺陷模式匹配(如重写equals但没重写hashCode,或相反情况等)
  2. Correctness 可能导致错误的代码(150余种):如空指针引用、无限循环等
  3. Experimental 实验性(9种)
  4. Internationalization 国际化相关问题(2种):如错误的字符串转换等
  5. Malicious code vulnerability 可能受到的恶意攻击(17种):如访问权限修饰符的定义等
  6. Multithreaded correctness 多线程的正确性(46种):如多线程编程时常见的同步,线程调度问题等
  7. Bogus random noise 伪随机噪声(4种):非软件中的实际错误
  8. Performance 运行时性能问题(37种):如由变量定义,方法调用导致的代码低效问题等
  9. Security 安全问题(11种):如HTTP,SQL,DB等,引入了不安全的外部输入,可能导致远程控制攻击的漏洞
  10. Dodgy code 导致自身错误的代码(87种):如未确认的强制转换、冗余的空值检查等

更加详细的bug描述可以访问官方网址查询:
SpotBugs漏洞详述

Eclipse环境下SpotBugs安装

Help—>Eclipse Marketplace进入插件市场
在这里插入图片描述
搜索SpotBugs并选择install(这里已经安装好了,所以显示的是installed)
在这里插入图片描述
等待SpotBugs自动安装完成后,选择windows—>Preferences并搜索SpotBugs,如果能搜索到SpotBugs的配置,说明已经安装成功了
在这里插入图片描述
为SpotBugs配置更多的规则,来检查更多的代码问题,可以在以下两个网址获取SpotBugs插件的jar包
fb-contrib jar包下载链接
findsecbugs-plugin jar包下载链接
点击图中红框按钮进入下载,截止到此文发布findsecbugs-plugin最新版本为1.10.1

下载完成后进入SpotBugs的配置界面,添加新的规则,将我们下载好的插件jar包导入即可。
在这里插入图片描述
(其实也可以点这里下载fb-contrib,左面的Writing custom plugins是自定义规则方法,本文暂不详述)
在这里插入图片描述

SpotBugs的使用

右键java工程或对应的类,选择SpotBugs—>find bugs
在这里插入图片描述
在每个文件名称后面的括号中会显示检测到的Bug数量
在这里插入图片描述
也可以进入窗口右上角的SpotBugs视窗,查看存在的bug
在这里插入图片描述
在SpotBugs视图中,不同颜色的瓢虫代表了不同的漏洞危险等级,颜色越偏向红色,漏洞危险等级越高,越可能造成危害。其中High confidence级别的漏洞建议尽可能进行解决,Normal confidence级别的漏洞可能并不会造成实际危害,在需要投入过多时间时,可以考虑其解决性价比进行修复。如果你有充足的时间进行debug,建议也仔细研究Normal级别的漏洞,对编程水平的提升很有帮助。
在这里插入图片描述

其他

关于SpotBugs更加详细的内容,可以参考官方文档:
https://spotbugs.readthedocs.io/en/latest/index.html#

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值