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
sonarqube8.9.9JDK11

部署:

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扫描代码

标签