SonarQube部署与使用
在 Jenkins 管理控制台中导航到 “Manage Jenkins -> Manage Plugins”,在 “Available” 选项卡中搜索并安装 “SonarQube Scanner” 插件。根据项目需求,可以在 SonarQube 中安装不同的插件。解压后,你会在 /opt 目录下看到一个名为 sonarqube-9.9.5 的文件夹,里面包含了 SonarQube 的所有文件。配置
1. 概述
SonarQube 是一款开源的代码质量管理平台,能够自动进行代码审查并提供详细的报告和建议。它支持多种编程语言,并能与 CI/CD 工具如 Jenkins 无缝集成。本文档将详细指导你如何从零开始部署、配置和使用 SonarQube 9.9.5。
2. 前提条件
|
3. 安装 SonarQube 9.9.5
3.1 下载 SonarQube 9.9.5
首先,前往 SonarQube 官方网站下载适合你操作系统的 SonarQube 9.9.5 版本。
|
解压后,你会在 /opt 目录下看到一个名为 sonarqube-9.9.5 的文件夹,里面包含了 SonarQube 的所有文件。
3.2 安装并配置数据库
以 PostgreSQL 为例,按照以下步骤安装和配置数据库:
# 更新软件包列表并安装 PostgreSQL
|
安装完成后,切换到 PostgreSQL 用户并创建数据库和用户:
|
配置完数据库后,记得记录下数据库名称、用户名和密码,以便后续配置 SonarQube。
3.3 安装并配置 SonarQube 9.9.5
编辑 SonarQube 配置文件 sonar.properties,配置数据库连接:
|
找到并修改以下配置:
|
保存并关闭配置文件。
3.4 启动 SonarQube 9.9.5
创建一个新的系统用户来运行 SonarQube 服务:
|
使用新创建的用户启动 SonarQube:
|
检查 SonarQube 是否启动成功:
|
如果日志中显示 SonarQube is up,说明 SonarQube 已成功启动。
4. 配置 SonarQube
4.1 初始配置
在浏览器中访问 http://your_server_ip:9000,使用默认管理员账户登录:
• 用户名: admin
• 密码: admin
首次登录后,系统会提示你修改默认密码。建议设置一个强密码以确保安全。
4.2 安装插件
根据项目需求,可以在 SonarQube 中安装不同的插件。导航到 “Administration -> Marketplace”,搜索并安装所需插件。例如:
• SonarJava: 用于 Java 项目分析
• SonarPython: 用于 Python 项目分析
• SonarJS: 用于 JavaScript 项目分析
安装完成后,重新启动 SonarQube 以使插件生效:
|
4.3 配置质量阈
质量阈用于定义代码质量的标准,可以根据项目需求进行配置。导航到 “Quality Gates”,点击 “Create” 创建新的质量阈,并添加相应的条件,例如:
• 代码覆盖率: 至少 80%
• 关键问题: 不允许存在
• 阻塞问题: 不允许存在
• 重复代码: 不超过 3%
配置完成后,点击 “Set as Default” 将其设为默认质量阈。
5. 使用 SonarQube
5.1 创建项目
在管理控制台中导航到 “Projects -> Create Project”,输入项目名称和项目密钥。项目密钥是该项目的唯一标识符,用于扫描配置。
5.2 生成项目令牌
在创建项目时,系统会生成一个项目令牌。此令牌用于配置 SonarQube Scanner 以进行项目扫描。务必保存该令牌,以便在配置扫描器时使用。
5.3 配置扫描器
下载并配置 SonarQube Scanner,以便在本地或 CI 服务器上进行代码扫描。
|
5.4 配置 sonar-project.properties
在项目根目录创建 sonar-project.properties 文件,定义扫描配置:
|
5.5 运行扫描
在项目根目录执行以下命令以运行SonarQube扫描
|
扫描完成后,可以在 SonarQube 管理控制台查看详细的代码质量报告。
6. 集成 Jenkins
6.1 安装 SonarQube 插件
在 Jenkins 管理控制台中导航到 “Manage Jenkins -> Manage Plugins”,在 “Available” 选项卡中搜索并安装 “SonarQube Scanner” 插件。
6.2 配置 SonarQube
在 Jenkins 系统配置中添加 SonarQube 服务器:
导航到 “Manage Jenkins -> Configure System -> SonarQube servers”,点击 “Add SonarQube”,输入以下信息:
• Name: SonarQube
• Server URL: http://your_server_ip:9000
• Server authentication token: 使用前面生成的项目令牌
配置 SonarQube Scanner:
导航到 “Manage Jenkins -> Global Tool Configuration -> SonarQube Scanner”,点击 “Add SonarQube Scanner”,输入以下信息:
• Name: SonarScanner
• Install automatically: 选择合适的版本或手动配置路径
6.3 配置 Jenkins 任务
在 Jenkins 中创建或配置一个任务,在 “Build” 步骤中添加 “Execute SonarQube Scanner” 步骤,配置相应的扫描参数:
|
配置完成后,保存并构建项目。构建完成后,可以在 SonarQube 管理控制台查看详细的代码质量报告。
7. 使用 Maven 构建和分析项目
7.1 配置 Maven
确保已安装 Maven 并正确配置 settings.xml 文件,包含 SonarQube 的相关配置:
|
7.2 配置 Maven 的 pom.xml 文件
确保项目的 pom.xml 文件中包含基本的构建配置和依赖。
|
7.3 使用 Maven 运行 SonarQube 扫描
在项目根目录执行以下命令以使用 Maven 进行代码扫描:
|
8. 常见问题与解决方案
8.1 SonarQube 无法启动
• 检查配置文件: 确保 sonar.properties 文件中的数据库配置正确。
• 查看日志: 检查 /opt/sonarqube-9.9.5/logs/sonar.log 日志文件,获取详细错误信息。
• 端口冲突: 确保 SonarQube 使用的端口(默认 9000)没有被其他应用程序占用。
8.2 扫描失败
• 配置错误: 确保 sonar-project.properties 文件中的配置信息正确无误。
• 依赖问题: 确保项目中所有依赖已经解决,编译没有错误。
• 网络问题: 确保可以访问 SonarQube 服务器。
SonarQube官方文档:https://docs.sonarsource.com/sonarqube/9.9/
SonarQube自定义插件文档:sonar-java/README.md at 7.28.0.33738 · SonarSource/sonar-java · GitHub
SonarQube官方论坛:https://community.sonarsource.com
SonarQube官方练习文档:GitHub - SonarSource/sonar-scanning-examples: Shows how to use the Scanners
阿里P3C插件Java11:p3c/README.md at master · alibaba/p3c · GitHub
阿里P3C插件Java17:GitHub - Leibnizhu/sonar-pmd-p3c-jdk17: 新版sonar-pmd + 新版p3c,支持jdk17
更多推荐
所有评论(0)