• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

yxchun

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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条规则名称是在哪里定义的?

 

 接下来我将告诉你规则如何定义,如何实现?

首先先整体看一下

MyJavaRulesPlugin 实现 Plugin 接口的作用是定义一个 SonarQube 插件的基本结构。实现 Plugin 接口允许你创建和注册自定义插件,以扩展 SonarQube 的功能。这个接口使你能够添加自定义规则、分析器、报告生成器或其他功能到 SonarQube 平台。
MyJavaRulesDefinition.java 定义规则;它主要用于在 SonarQube 插件中创建和管理代码质量规则。实现 RulesDefinition 接口允许你将自定义的规则集整合到 SonarQube 中,使得这些规则可以在代码分析过程中被应用。
MyJavaFileCheckRegistrar.java注册自定义的代码检查规则。它允许你将自定义规则添加到 SonarQube 扫描器中,以便在分析代码时使用这些规则;
RulesList 是用来显示和管理所有定义的规则的组件

 接下来如何在sonarqube使用这些规则?

 SonarQube使用新增的自定义规则,进行maven项目扫描 - yxchun - 博客园 (cnblogs.com)

posted on 2024-08-19 10:00  yxchun  阅读(2047)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3