SonarQube的findbugs扩展

以前公司扫代码用eclipse findbugs插件,还扩展了8个自定义规则。最近有个需求,就是要把eclipse的findbugs插件中自扩展规则集成到sonar中。

安装sonarqube7.7后,在应用市场再安装完findbugs

一开始想到sonar自定义规则,这个比较简单,但是好像不满足需求。需求是要集成到sonar的findbugs插件中去。苦思冥想,发现了是不是可以自己改改 sonar-findbugs-plugin-3.11.0.jar,以达到效果。这个JAR在sonar安装完findbugs后可以在sonarqube-7.7/extensions/plugins拿到。拿到这个JAR后,第一感觉就是反编译下:


查看META-INF/lib下,笔者也是一开始找了半天,没发现findbugs的踪迹,但是发现了spotbugs-3.1.12.jar,这是个啥呢?百度了一下,进入官网:https://spotbugs.github.io/,首页有一段介绍:

意思很明了,spotbugs继承了findbugs,并且sonar-findbugs-plugin-3.11.0也早已把findbugs升级为spotbugs了,可以在

https://docs.sonarqube.org/display/sonarqube45/findbugs+plugin中查看升级日志。

咱们继续分析,目前想到2种办法。

spotbugs源码下载:https://github.com/spotbugs/spotbugs/tree/release-3.1

sonar-findbugs-plugin源码下载:https://github.com/spotbugs/sonar-findbugs/tree/release-3.9.4

第1种:那是不是可以把sonar-findbugs-plugin-3.11.0.jar依赖的spotbugs-3.1.12.jar源码改下,把自定义规则加进去。然后再重新打包,放进sonar-findbugs-plugin-3.11.0.jar中,再上传到sonarqube-7.7/extensions/plugins中,再重启sonar.此方法笔者就不试了。应该是没有问题的。

spotbugs官网发现说是可以扩展,但是笔者尝试将fb-contrib.jar放入指定目录中

然后重新打包,发现放入fb-contrib.jar和不放打出来的jar,体积一样。

说明没打进去。目前采用的办法就是直接在源码中加,eclipse插件也是这么做的。

第2种:查看sonar-findbugs-plugin-3.11.0.jar源码,发现了

这个不就是对应sonar里面的规则吗?

个人猜测,是不是在运行时,fb-contrib.jar会被使用,sonar-findbugs-plugin源码中搜索fb-contrib.jar

那咱们就效仿它,下载fb-contrib.jar源码,然后把里面无用代码删除。把咱们的自定义规则放进去,再打包。

未完待续。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值