sonar自定义规则c语言,sonar自定义规则笔记

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

对于sonar的安装,笔记并未做相关记录,原因很简单,百度一下你就知道;

笔记着重自定义规则开发,个人也是慢慢摸索,一路坎坷,接下来一点点分享,欢迎各路大神批评指正:

1.针对于sonarqube的自定义规则开发,这边是通过IDEA来搭建的环境,对于源码阅读比较舒服。

2.从官方下载了自定义规则的demo,这也就可以开始玩起来。

结构树如图:

c72d9a72abeb

image.png

该类实现了接口Plugin

c72d9a72abeb

image.png

那么接下来对这个接口分析:

里面只有一个define方法,同时该方法的入参被封装成了一个静态内部类,ok,接下来继续分析:

c72d9a72abeb

image.png

在这个静态内部类中定义了一些方法,观察发现,这些方法都是为内部的两个final的参数服务的,足见两个参数的重要,那就一起看看这两个参数吧

c72d9a72abeb

image.png

关于第一个SonarRuntime,一个接口

c72d9a72abeb

image.png

通过类图发现,只有一个子类SonarRuntimeImpl , (够神奇的,就一个类还用一个接口去抽象替换实体,不过细想就回发现这样做肯定是为了后期对于sonarqube的相关配置和服务升级,同时也保证了java的开闭原则,此处略略略。。。) 进入子类看看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值