文章
问答
冒泡
手把手教你SonarQube 9.9 安装+汉化+生成PDF

SonarQube 介绍

SonarQube 是一个用于代码质量管理的开源平台,它通过静态代码分析来检测代码中的错误、漏洞和代码异味,帮助开发团队持续跟踪和管理代码质量。SonarQube 支持多种编程语言,如 Java、C#、C/C++、PL/SQL、Cobol 等,并且可以与各种持续集成工具(如 Jenkins、GitLab CI)以及代码版本控制系统(如 Git、SVN)进行集成。

架构设计

SonarQube 平台由以下四个主要组件组成:

  • SonarQube 服务器:启动三个主要进程:
    • Web 服务器,供开发人员和管理人员浏览代码质量快照并配置 SonarQube 实例。
    • 基于 Elasticsearch 的 Search Server,用于从 UI 进行搜索。
    • Compute Engine 服务器,负责处理代码分析报告并将其保存在 SonarQube 数据库中。
  • SonarQube 数据库:存储 SonarQube 实例的配置(如安全性、插件设置等)以及项目、视图等的质量快照。支持 Oracle、PostgreSQL、MySQL 等数据库。
  • SonarQube 插件库:通过插件使平台功能更加强大,常用的插件分类包括 SCM、集成、身份验证、管理维护等插件。
  • SonarQube 扫描器:客户端工具,用于扫描项目并将扫描结果上传到服务器。

使用场景

  • 代码质量控制:SonarQube 可以自动化代码审查过程,帮助开发团队确保代码符合质量标准,尤其在大规模项目中尤为重要。
  • CI/CD 流程中的自动化检查:与 CI/CD 流程结合,自动分析每次提交的代码,并根据结果决定是否继续进行下一步部署。例如,在 Jenkins 中配置 SonarQube 扫描任务,每次构建时自动进行代码质量检查。
  • 技术债务管理:SonarQube 通过报告技术债务,帮助团队监控和管理代码中的技术债务,以便按需重构代码。
  • 代码提交和审查:开发人员在 IDE 中安装 SonarLint 进行本地代码扫描分析,然后将代码提交到版本控制系统(如 Gitlab、SVN 等)。持续集成服务器触发自动构建,并执行 SonarScanner 进行代码分析,分析结果推送到 SonarQube 服务器进行处理和展示。在代码审查过程中,审核者可以根据 SonarQube 的分析结果决定是否通过合并请求。

优缺点

优点:

  • 全面的代码质量管理:提供了全面的代码质量管理功能,包括代码静态分析、代码规范检查、代码重复检测、单元测试覆盖率等。
  • 支持多种编程语言:支持多达 25 种编程语言,如 Java、Python、C++ 等,极大增加了它的灵活性。
  • 易于集成:可以与持续集成工具(如 Jenkins、GitLab CI)以及代码版本控制系统(如 Git、SVN)进行集成,使得代码质量分析可以自动化执行。
  • 详细的报告和指标:提供了详细的报告和指标,包括代码质量、安全漏洞、技术债务等方面的数据。
  • 活跃的社区支持:用户基数大,有一个活跃的社区,提供了丰富的文档、教程和插件。
  • 灵活扩展:插拔式使用,自定义的代码检测规则,可自定义插件,独立打成 JAR 包放到 SONARQUBE 插件目录下,重启即生效,开发使用非常方便。

缺点:

  • 资源消耗较大:进行代码质量分析需要消耗一定的系统资源,尤其是对大型项目和复杂代码库来说,可能会占用较多的内存和处理器资源。
  • 配置复杂:SonarQube 的配置比较复杂,需要对各种规则和插件进行合理的配置,以适应项目的需求和团队的开发规范。
  • 部分功能需要付费:SonarQube 的企业版提供了一些高级功能和支持服务,但需要付费购买。

Windows本地搭建SonarQube9.9 LTA

  • 本地安装jdk17

  • 官网下载SonarQube Community Edition zip安装包

https://www.sonarsource.com/products/sonarqube/downloads/

  • 解压到指定文件夹

  • PostgreSql创建指定用户和数据库

  • 修改配置文件jdbc配置

  • 进入控制台启动SonarQube服务

  • 浏览器访问 http://localhost:9000/, 登录账号访问,默认账户admin/admin,首次登录需要修改登录密码

  • 创建项目

选择Manually 创建项目

  • 生成maven扫描命令

项目创建好后,点击 Locallly

执行maven命令

  • 本地汉化
    • 插件市场直接安装

  • 下载依赖jar包,并添加到extensions\plugins 文件夹下

  https://github.com/xuhuisheng/sonar-l10n-zh/releases

重启服务器

导出PDF配置

  • 下载依赖jar包,并添加到extensions\plugins 文件夹下

  • 修改PDF Report配置

配置阿里规约p3c扫描项目

  • clone项目本地

https://github.com/caowenliang/sonar-pmd-p3c

  • 本地编译打包

  • 添加jar包到指定文件夹下
  • 配置扫描规则,新建质量规则

  • 创建完成后默认是没有任何规则的,需要添加p3c的检测规则

  • 批量激活 p3c 开头的规则

  • 将创建好的p3c检测规则设置为默认质量配置

  • 重新扫描项目

  • 导出PDF

SonarQube
p3c

关于作者

Miraclewcg
上善若水
获得点赞
文章被阅读