对于sonar的安装,笔记并未做相关记录,原因很简单,百度一下你就知道;
笔记着重自定义规则开发,个人也是慢慢摸索,一路坎坷,接下来一点点分享,欢迎各路大神批评指正:
1.针对于sonarqube的自定义规则开发,这边是通过IDEA来搭建的环境,对于源码阅读比较舒服。
2.从官方下载了自定义规则的demo,这也就可以开始玩起来。
结构树如图:
image.png
该类实现了接口Plugin
image.png
那么接下来对这个接口分析:
里面只有一个define方法,同时该方法的入参被封装成了一个静态内部类,ok,接下来继续分析:
image.png
在这个静态内部类中定义了一些方法,观察发现,这些方法都是为内部的两个final的参数服务的,足见两个参数的重要,那就一起看看这两个参数吧
image.png
关于第一个SonarRuntime,一个接口
image.png
通过类图发现,只有一个子类SonarRuntimeImpl , (够神奇的,就一个类还用一个接口去抽象替换实体,不过细想就回发现这样做肯定是为了后期对于sonarqube的相关配置和服务升级,同时也保证了java的开闭原则,此处略略略。。。) 进入子类看看