前言
前一段时间(很久之前了😳)弄了 sonarQube 以及如何开发自定义规则,在之前一直也没有去接触过。于是兴致勃勃的到网上一顿搜索的骚操作,本地的 sonarQube 就搭建好了,并且通过 sonar 自带的规则扫描自己的项目发现了一些问题。就在我准备更进一步去学习如何进行自定义规则开发的时候,碰坑了。。。
在网上查了很多关于 sonar 自定义规则开发的资料,其内容都大同小异,介绍如何搭建 sonarQube 环境几乎占了 80% 或者更高,仅仅少数是进行最简单的开发环境 demo 介绍(其中包括如何创建规则,以及规则的一些相应配置), 但对于更深入的如何去开发一个规则以及内部原理的文章比较少(可能关键词不当),于是乎。。。为了记录学习的过程便有了这篇文章,希望对于初入学习sonar 自定义规则开发的小伙伴有一定的帮助。
深入了解sonar自定义规则开发
小白阶段
当我第一次看到 sonar 规则,一脸懵逼。。。基于有一定的编程能力,通过规则对应的单元测试进行一步步的 debug 调试(当时每个方法里面都被我打上了断点┑( ̄▽  ̄)┍)
在一步步的调试下,终于大致看懂了一个规则的数据流向,于是撸起袖子准备开始敲自己的代码,刚打完规则名后就卡住了。。。因为原来代码里面的各种 nodesToVisit、 visitNode 方法都没弄清楚为什么要这么写,更不知道该从哪里开始。于是又重新开始 ( ̄﹏ ̄)。
进阶 ing
直接拿 sonar 规则官网 的BadMethodNameCheck规则进行后面的解释,我们就根据 debug 的路径一步步开始讲解。
Test JavaCheckVerifier.verify (&#