Sonarqube 自定义规则,部署SonarSource / sonar-java源码中示例规则:docs/java-custom-rules-example
自定义规则,可以参考sonar-java/docs/CUSTOM_RULES_101.md at 8.0.0.36314 · SonarSource/sonar-java · GitHub
1、下载一份sonarqube源码,配置好本地的环境,JDK17和maven
docs/java-custom-rules-example 示例项目中会有写好的规则;我们可以先尝试将这些写好的规则添加到Sonarqube扫描中;
2、在项目的readme文件中,编译整个项目需要使用JDK21;
编译打包单个项目也就是java-custom-rules-example可以用JDK17
3、进入idea控制台,进行编译
4、编译成功后,jar会在target文件夹下
下载安装sonarqube,参考教程:sonarqube-9.9.6.92038 安装与启动 , Windows11 - yxchun - 博客园 (cnblogs.com)
5、将打包好的jar放在extensions\plugins下
6、重启sonarqube,
关闭sonarqube时,可以尝试kill掉任务栏中所有Java进程
在sonarqube日志中可以看到Load plugins,加载了插件,并且没有报错
输入网址查看插件与规则,MyCompany Custom Repository 里面是java-custom-rules-example项目示例中的默认规则
接下来我将告诉你MyCompany Custom Repository名字是在哪里定义的?
右侧9条规则名称是在哪里定义的?
接下来我将告诉你规则如何定义,如何实现?
首先先整体看一下
Plugin
接口的作用是定义一个 SonarQube 插件的基本结构。实现 Plugin
接口允许你创建和注册自定义插件,以扩展 SonarQube 的功能。这个接口使你能够添加自定义规则、分析器、报告生成器或其他功能到 SonarQube 平台。RulesDefinition
接口允许你将自定义的规则集整合到 SonarQube 中,使得这些规则可以在代码分析过程中被应用。RulesList
是用来显示和管理所有定义的规则的组件
接下来如何在sonarqube使用这些规则?
SonarQube使用新增的自定义规则,进行maven项目扫描 - yxchun - 博客园 (cnblogs.com)