sonarqube部署

SonarQube 是一款开源的代码质量管理平台,专门用于静态代码分析。它通过扫描源代码,自动检测代码中的缺陷(Bugs)、漏洞(Vulnerabilities)和代码异味(Code Smells),帮助开发团队持续提升代码质量
核心功能:
- 静态代码分析:无需运行代码,直接分析源代码,找出潜在问题
- 质量门禁(Quality Gate):设定质量阈值(如测试覆盖率、重复率),只有达标才能通过构建
- 技术债管理:量化代码中的技术债务,帮助团队规划重构
- 多语言支持:支持 Java、C#、JavaScript、Python 等 20+ 种编程语言
- 持续集成(CI)集成:与 Jenkins、GitLab CI 等工具无缝集成
工作原理:SonarQube 采用 C/S 架构
- SonarQube Server:负责处理分析报告、存储数据、展示 Web 界面
- Scanner(客户端):在项目本地运行,扫描代码并发送报告给服务器
环境
| 系统 | ubuntu24.04 | 依赖JDK |
| sonarqube | 8.9.9 | JDK11 |
部署:
1、安装JDK11,不演示了
2、SonarQube 8.9.9 不支持内置的 H2 数据库,必须使用外置数据库,推荐 PostgreSQL,如下:
sudo apt install postgresql postgresql-contrib
sudo -u postgres psql #切换到postgres用户并登录数据库
# 在 PostgreSQL 中创建数据库和用户
CREATE DATABASE sonarqube;
CREATE USER sonarqube WITH PASSWORD 'your_strong_password';
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
\q
3、下载sonarqube安装包Sonarqube下载地址,下载地址:
https://binaries.sonarsource.com/?prefix=Distribution/sonarqube/
sonarqube要通过普通用户启动才行,如下:
useradd -m sonarqube && password sonarqube
mkdir -p /data/sonarqube
chown -R sonarqube:sonarqube /data/sonarqube
将包解压到/data/sonarqube目录下,修改配置文件,添加postgresql的认证信息,如下:
su - sonarqube
vim sonarqube-8.9.9/conf/sonar.properties
#数据库配置
sonar.jdbc.url=jdbc:postgresql://192.168.49.245:5432/sonarqube
sonar.jdbc.username=sonarqube
sonar.jdbc.password=密码
# Web 服务配置
sonar.web.host=0.0.0.0
sonar.web.port=9000
4、重启sonarqube即可,要用普通用户执行,如下:
bin/linux-x86-64/sonar.sh restart
注:如果不用普通用户执行,sonarqube自带的es起不来,提示java.lang.RuntimeException: can not run elasticsearch as root
5、启动后通过IP:9000端口访问,默认账号密码为admin/admin,登录后修改密码,如图:

配置PDF导出插件
配置后扫描报告发送到服务器后可以导出到本地为PDF文件
1、下载PDF插件,地址如下:
https://gitee.com/zzulj/sonar-pdf-plugin/releases
将下载后的插件放在sonarqube安装目录的extensions/plugins路径中,如图:

重启sonarqube
2、登录sonarqube,点击Administrator-Configuration-PDF EXPORT,输入登录的账号和密码即可(就是登录sonarqube的账号密码),如图:




在Jenkins所在服务器上测试是否能发送扫描报告到sonarqube服务器,可以参考Jenkins集成SonarQube扫描代码


