
SonarQube 是一个强大的静态代码分析平台,能够帮助开发者检测代码质量、漏洞、安全问题等。以下是如何在 Windows 系统上安装和配置 SonarQube 的详细步骤。



SonarQube 需要 Java 进行运行。确保系统中已安装 Java 8 或更高版本。
JAVA_HOME 环境变量: 此电脑 -> 属性 -> 高级系统设置 -> 环境变量。JAVA_HOMEC:\Program Files\Java\jdk-11.x.x(根据你安装的 Java 版本调整路径)bin 目录(例如:C:\Program Files\Java\jdk-11.x.x\bin)。解压 SonarQube:
C:\SonarQube。

修改 SonarQube 配置文件:
C:\SonarQube\conf\sonar.properties 文件(如果是其他路径,请根据实际路径修改)。如果你没有配置数据库,SonarQube 会使用内嵌的 H2 数据库(仅限测试使用)。但如果你需要使用生产环境,推荐配置外部数据库(如 PostgreSQL 或 MySQL)。
数据库配置(如使用 PostgreSQL):
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar默认情况下,SonarQube 会监听端口 9000,你可以在 sonar.properties 文件中修改端口:
sonar.web.port=9000bin/windows-x86-64 目录。StartSonar.bat 启动 SonarQube。

不支持JDK21

参考官方文档手动命令行设置为jdk17 即可正常启动

如果一切正常,你将看到类似以下的输出:
2024.11.15 10:00:00 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory C:\SonarQube\temp
2024.11.15 10:00:00 INFO app[][o.s.a.p.ProcessLauncher] Launch process with arguments: [java, -jar, C:\SonarQube\lib\sonar-server-<version>.jar]
bin/windows-x86-64 目录下运行 StopSonar.bat。
adminadmin
登录后会强制改密码

创建本地项目

下一步

SonarScanner 是用于执行 SonarQube 分析的命令行工具。


配置系统环境变量:
SonarScanner 解压目录中的 bin 文件夹路径添加到系统的 PATH 环境变量中。配置 sonar-project.properties 文件:
在项目根目录下创建一个名为 sonar-project.properties 的文件,并填写以下内容:
# 项目唯一标识符
sonar.projectKey=your_project_key
# 项目名称
sonar.projectName=Your Project Name
# 项目版本
sonar.projectVersion=1.0
# 源代码目录
sonar.sources=src
# 测试目录(可选)
sonar.tests=src/test
以下是一个通用的 sonar-project.properties 配置文件模板,包含 sonar.host.url、sonar.login 和 sonar.password 配置,适合需要连接本地 SonarQube 服务器的项目。
# SonarQube 服务器地址
sonar.host.url=http://localhost:9000
# 配置认证信息
sonar.token=你的token
# 项目标识和名称
sonar.projectKey=your_project_key
sonar.projectName=Your Project Name
sonar.projectVersion=1.0
# 源代码目录
sonar.sources=src
# 测试代码目录(如果有)
sonar.tests=src/test
# 编译输出目录(包含 .class 文件的路径)
sonar.java.binaries=target/classes
# 排除特定文件或目录(根据需要配置)
sonar.exclusions=**/*.test.js,**/*.spec.js
# 指定源代码编码
sonar.sourceEncoding=UTF-8
# 多模块项目配置(根据需要启用)
# sonar.modules=module1,module2
# 模块示例配置
# module1.sonar.projectName=Module 1
# module1.sonar.sources=module1/src
# module1.sonar.java.binaries=module1/target/classes
# module2.sonar.projectName=Module 2
# module2.sonar.sources=module2/src
# module2.sonar.java.binaries=module2/target/classessonar.host.url:指定 SonarQube 服务器的地址(这里是本地服务器 http://localhost:9000)。
sonar.projectKey 和 sonar.projectName:项目的唯一标识和名称,需替换为实际项目的信息。
sonar.sources:源代码目录,指向项目中的代码文件夹。
sonar.tests:测试代码目录,指定测试文件夹路径(如有)。
sonar.java.binaries:编译输出目录,指向包含 .class 文件的路径。
sonar.exclusions:排除不需要分析的文件或目录。
sonar.sourceEncoding:指定源代码的编码格式。
sonar.modules 列出模块名,并为每个模块指定 sonar.sources 和 sonar.java.binaries。
将此模板保存为 sonar-project.properties,根据实际情况替换配置项中的值。然后在项目根目录运行 sonar-scanner 即可。
在项目根目录下,打开命令行终端并执行以下命令:
sonar-scanner错误信息及解决方法:

ERROR Error during SonarScanner CLI execution
java.lang.IllegalStateException: Error status returned by url [https://api.sonarcloud.io/analysis/jres?os=windows&arch=amd64]: 401由于 之前被强制更改密码,所以 sonar-project.properties 里面需要配置密码
SonarScanner 会开始分析项目并将结果上传到 SonarQube 服务器。
执行成功 效果如下:


目前无法直接导出检测报告,有点头疼,还在继续寻找其他替代品,网上有消息说 8.0版本有解决方案,可以自行尝试。
通过上述步骤,你已经在 Windows 系统上成功安装并配置了 SonarQube。你可以通过 Web 界面访问 SonarQube,配置并分析你的项目代码质量。配合 SonarScanner 使用,SonarQube 能够帮助你自动化地检测并管理项目中的技术债务、安全漏洞及其他代码质量问题。