SonarQube 是一个开源的代码质量管理平台,用于持续分析和评估项目源代码的质量。它通过静态代码分析,帮助开发者快速发现代码中的问题,例如重复代码、潜在的 Bug、安全漏洞、代码规范问题等,并以可视化的方式展示分析结果。
SonarQube 支持多种编程语言,包括 Java、JavaScript、Python、C#、C++ 等,能够通过插件扩展功能,例如整合 Checkstyle、FindBugs 和 PMD 等工具,从多个维度对代码质量进行检测和优化。
本文以 企业版 2025.1.4.113907 为例,在部署之前需要准备以下工具:
1、SonarQube
https://www.sonarsource.com/zh/products/sonarqube/downloads/
2、SonarQube 汉化包
https://github.com/xuhuisheng/sonar-l10n-zh
3、PostgreSQL
https://www.postgresql.org/download/
或者在
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
推荐 17 版本。
一、安装 PostgreSQL
根据提示进行安装,留意记录下管理员密码。
如安装在:E:\SonarQube2025\PostgreSQL 下。
在命令行中执行 (并输入安装时设置的密码):
cd /d E:\SonarQube2025\PostgreSQL\17\bin psql -U postgres -h localhost -p 5432
创建用户及数据库:
-- 1. 创建 sonarqube 用户(角色) CREATE USER sonarqube WITH PASSWORD 'password123'; -- 2. 创建 sonarqube 数据库并指定所有者 CREATE DATABASE sonarqube OWNER sonarqube; -- 3. 连接到新创建的数据库 \c sonarqube; -- 4. 为 sonarqube 用户授予所有权限 GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube; -- 5. 创建 schema(可选,但推荐) CREATE SCHEMA IF NOT EXISTS sonarqube AUTHORIZATION sonarqube; -- 6. 设置默认搜索路径 ALTER DATABASE sonarqube SET search_path TO sonarqube; -- 7. 授予 schema 权限 GRANT ALL PRIVILEGES ON SCHEMA sonarqube TO sonarqube; -- 8. 授予所有表的权限 GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA sonarqube TO sonarqube; -- 9. 授予序列的权限 GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA sonarqube TO sonarqube; -- 10. 设置用户的默认搜索路径 ALTER USER sonarqube SET search_path TO sonarqube; -- 11. 验证权限 \dn+ \dp sonarqube.* -- 12. 退出 \q
二、SonarQube 部署
将 SonarQube 解压到指定目录,如 E:\SonarQube2025。
并将 SonarQube 汉化包放置在 E:\SonarQube2025\extensions\plugins。
三、SonarQube 配置
打开 E:\SonarQube2025\conf\sonar.properties 文件。
留意 文件中 sonar.web.port 项(默认为 9000),该端口后启动后 WEB 访问端口。
找到并编辑以下项:
#----- PostgreSQL sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube?currentSchema=sonarqube sonar.jdbc.username=sonarqube sonar.jdbc.password=sonarqube
四、启动
cd /d E:\SonarQube2025\bin\windows-x86-64 # 手动启动 StartSonar.bat # 以服务方式启动 SonarService.bat
如果你没有 Jre 环境,则
在 StartSonar.bat、SonarService.bat 文件中, rem DO NOT EDIT THE FOLLOWING SECTIONS 下增加:
REM 强制指定 SonarQube 使用 Java 17 set JAVA_HOME=E:\SonarQube2025\jres\jre_17 set PATH=%JAVA_HOME%\bin;%PATH%
五、登录
输入 http://localhost:9000,用户名和密码均为 admin。(在登录成功后要求重置密码)