Sonar学习文档

author:yzh

date:2025/07/03

一、前言

在现代软件开发中,代码质量直接影响项目的可维护性、安全性和稳定性。手动检查代码问题耗时费力,而 SonarQube 作为一款开源的代码质量管理平台,能够自动化检测代码中的漏洞、坏味道、重复代码和测试覆盖率等问题。

因为现在这个已经集成到很多CI/CD中,而该文档是手动上传本地的项目到sonar平台上进行分析,一般用于个人的项目分析,可以快速了解一下Sonar,同时在过程中也出现了很多问题,下面会一步步完成 SonarQube 的安装、配置和项目分析,帮助你提升代码质量,减少技术债务。

二、Sonar简介

SonarQube 是一个静态代码分析工具,支持 30+ 种编程语言(如 Java、Python、JavaScript、Go 等),并提供以下核心功能:

  • 代码质量检测:识别代码异味(Code Smells)、潜在 Bug 和安全漏洞。

  • 测试覆盖率分析:统计单元测试覆盖情况,帮助优化测试用例。

  • 技术债务管理:量化代码问题,预估修复成本。

  • CI/CD 集成:支持 Jenkins、GitLab CI、GitHub Actions 等持续集成工具。

SonarQube 提供 社区版(免费) 和 商业版(企业级功能),本教程基于社区版进行演示。

三、环境准备

2.1 安装 SonarQube 服务器

本文档是在本地安装Sonar服务器,也可以使用docker安装

安装路径:Download SonarQube | Sonar

下载第一个安装包并解压

安装完成后找到指定的路径下的启动器,双击启动,并尝试访问localhost://9000

首次登录账密是 admin admin,会提示修改密码,同时会发现界面是英文,如果需要显示中文需要去下载插件

中文插件网址:Tags · xuhuisheng/sonar-l10n-zh

下载完成后需要放到这个路径下

接着重新启动项目可以看到显示为中文了,如果不行的话就重启试一下

这里显示插件风险不用管,点击了解风险即可

2.2 安装 SonarScanner

上面是安装了Sonar的服务端,但是现在还需要一个Sonar客户端用于扫描上传项目代码到客户端,所以需要下载一个SonarScanner 是用于扫描代码的命令行工具。

SonarScanner 官网:SonarScanner CLI | SonarQube Server Documentation

下载解压完成后找到这个路径并记住

在电脑的属性中找到高级设置并编辑环境变量添加上面的路径

然后在终端端口中进行尝试,输出如下内容说明配置成功

四、项目配置

上面已经安装好了服务器端和客户扫描端,接下来需要在服务器中建一个项目来分析我们的代码

创建一个项目,这里最好填我们本地项目相同的名称用于区分

然后这里默认全局设置即可

选择本地上传项目,这里也可以使用一些其他方式,比如Jenkins、Github Actions等

创建一个令牌,并选择我们构建方式,springboot项目可以选maven或者其他,并复制下面的命令

五、执行代码分析

项目本地先使用maven构建一下得到target文件夹

项目本地也要添加以下配置文件,主要是key、name、以及最后的密钥

然后在终端中执行上面的命令上传项目

显示这个说明上传成功,然后要等一会,也可能会等很久,耐心等待即可

六、查看结果

分析完成之后就能看到分析的结果,可以用来检查分析代码

七、坑

1.双击启动服务器,如果前端界面显示失败,同时终端窗口报错如下,说明是es启动失败,无法连接,可能是因为两个启动器同时在启动发生冲突了,可以去这个路径下删除这个锁信息并重试

2.网上有些教程需要自己创建数据库来存一些信息,但是Sonar自带一个H2数据库,所以个人用于尝试分析项目不用新建创建数据库,若有很多的分析需求可以尝试

3.Sonar启动一直失败/卡住或者上传项目成功但是一直分析不出来,重启或者等第二天可能就自动好了。。。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐