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

本文主要介绍了如何在SonarQube中自定义规则,特别是针对C语言和Java的规则开发。作者通过IDEA进行环境搭建,分析了SonarQube的Plugin接口和相关类结构,强调了SonarRuntime接口及其实现的重要性。文章重点讨论了JavaFileScanner和BaseTreeVisitor的作用,展示了如何通过Java方法扫描和报告问题。此外,还给出了一个具体的抽象类命名检查的自定义规则示例,详细解释了规则定义和实现过程。
最低0.47元/天 解锁文章
914

被折叠的 条评论
为什么被折叠?



