SonarQube 完整手册(2026 最新)

目录

​编辑

[一、什么是 SonarQube](#一、什么是 SonarQube)

核心四大模块架构

[二、四大版本区别(2026 命名)](#二、四大版本区别(2026 命名))

[1. Community Build(社区版,免费开源)](#1. Community Build(社区版,免费开源))

[2. Developer Edition(开发者付费版)](#2. Developer Edition(开发者付费版))

[3. Enterprise Edition Edition(企业版,付费)](#3. Enterprise Edition Edition(企业版,付费))

[4. Data Center(数据中心版,付费)](#4. Data Center(数据中心版,付费))

[补充:SonarQube Cloud(SaaS 云服务)](#补充:SonarQube Cloud(SaaS 云服务))

三、核心功能

[1. 六大代码质量指标](#1. 六大代码质量指标)

[2. Quality Gate(质量门禁,核心管控)](#2. Quality Gate(质量门禁,核心管控))

[3. DevOps 全链路集成](#3. DevOps 全链路集成)

[4. 密钥泄露检测](#4. 密钥泄露检测)

[四、快速部署(Docker 推荐,CentOS7 / 通用)](#四、快速部署(Docker 推荐,CentOS7 / 通用))

前置要求

[1)Docker 一键启动(测试环境)](#1)Docker 一键启动(测试环境))

[2)PostgreSQL 外置数据库(生产标准)](#2)PostgreSQL 外置数据库(生产标准))

[五、代码扫描示例(Maven Java 项目)](#五、代码扫描示例(Maven Java 项目))

[方式 1:Maven 内置 Scanner(最常用)](#方式 1:Maven 内置 Scanner(最常用))

[方式 2:CLI Scanner(多语言通用)](#方式 2:CLI Scanner(多语言通用))

[六、主流版本 LTA 长期支持(2026)](#六、主流版本 LTA 长期支持(2026))

[七、常见运维 / 兼容问题(适配 CentOS7+PostgreSQL 升级场景)](#七、常见运维 / 兼容问题(适配 CentOS7+PostgreSQL 升级场景))

[八、配套工具 SonarLint](#八、配套工具 SonarLint)


一、什么是 SonarQube

静态代码分析(SAST)平台,核心作用:自动化代码质检、持续管控代码质量与安全漏洞,属于 DevOps 标准流水线工具。

  • 无需运行代码,扫描源码即可发现问题
  • 覆盖四大检测维度:Bug、安全漏洞、代码异味、重复代码、复杂度、技术债
  • 支持 Java/Go/Python/JS/TS/Docker/K8s/SQL 等 20 + 主流语言
  • 配套 SonarLint:IDE 本地实时检测(IDEA/Vscode/Eclipse 免费插件)

核心四大模块架构

  1. SonarQube Server(服务端)
    • Web 服务:可视化报表、质量门禁、规则配置、权限管理(默认端口 9000)
    • Compute Engine:解析扫描结果、计算指标、生成报告
    • Elasticsearch:全文检索代码问题
  2. 数据库:存储项目历史、规则、用户(官方推荐 PostgreSQL,不支持 MySQL 新版)
  3. Scanner 扫描器:客户端工具(Maven/Gradle/CLI/Jenkins 插件),本地扫描代码上传结果
  4. SonarLint:IDE 插件,开发时实时提示问题,提前拦截缺陷

二、四大版本区别(2026 命名)

1. Community Build(社区版,免费开源)

适合个人 / 小团队、内部测试

  • 支持 21 种主流语言(Java/Go/Python/JS/Docker 等)
  • 基础 Bug、漏洞、代码异味、密钥硬编码检测
  • 基础 CI 集成、单分支分析、基础质量门禁
  • 限制:无多分支 / PR 分析、无 C/C++/Swift、无污点安全分析、无企业报表、无商业支持

2. Developer Edition(开发者付费版)

中小研发团队 社区版全部能力 +

  • C/C++/Swift/Shell/PLSQL 等扩展语言
  • 分支、Pull Request MR 分析(流水线拦截合并)
  • AI 代码校验、污点注入漏洞深度检测(SQL 注入 / XSS)
  • 高级密钥泄露扫描

3. Enterprise Edition Edition(企业版,付费)

中大型企业合规、多项目治理 Developer 全部能力 +

  • 项目集大盘、全局质量管控、合规报告(NIST/OWASP)
  • 第三方工具 SARIF 报告导入(依赖扫描、漏洞工具)
  • 细粒度权限、审计日志、PDF 导出、自定义规则集

4. Data Center(数据中心版,付费)

大型集群、高可用生产环境 Enterprise 全部能力 +

  • 集群部署、负载均衡、故障自动切换
  • 横向扩容、海量代码库性能优化、7×24 付费技术支持

配套产品线改名:

  • SonarLint → SonarQube for IDE
  • SonarCloud(SaaS 云)→ SonarQube Cloud

补充:SonarQube Cloud(SaaS 云服务)

免自建服务器,托管云版本,分免费 / 团队 / 企业订阅,适合不想运维服务器的团队SonarQube。

三、核心功能

1. 六大代码质量指标

  • Bugs:运行时逻辑错误(空指针、数组越界、资源未关闭)
  • Vulnerabilities:安全漏洞(OWASP Top10、SQL 注入、XSS、命令注入)
  • Security Hotspots:风险代码段(需人工确认是否可利用)
  • Code Smells(代码异味):规范问题(命名混乱、冗余判断、超长方法、缺少注释)
  • Duplications:重复代码块,提升维护成本
  • Technical Debt(技术债):修复所有问题预估工时,用于团队量化质量

2. Quality Gate(质量门禁,核心管控)

自定义放行阈值,流水线不达标直接阻断发布,常用规则示例:

  • 新增代码 0 高危漏洞、0 阻断级 Bug
  • 单元测试覆盖率≥80%
  • 重复代码率<5%
  • 无新增密钥硬编码、无高危安全热点

3. DevOps 全链路集成

Jenkins/GitLab CI/GitHub Actions/Azure DevOps/Maven/Gradle,提交代码自动扫描,PR 失败直接禁止合并。

4. 密钥泄露检测

识别代码中硬编码密码、AK/SK、数据库账号,避免敏感信息提交仓库引发安全事故SonarQube。

四、快速部署(Docker 推荐,CentOS7 / 通用)

前置要求

  • JDK17(2025.4+ LTA 强制要求)
  • 内存≥4G,生产 8G+
  • 数据库:PostgreSQL 14+

1)Docker 一键启动(测试环境)

复制代码
# 拉取社区版镜像
docker pull sonarqube:latest
# 启动容器(关闭ES内存校验,单机测试)
docker run -d \
  --name sonarqube \
  -p 9000:9000 \
  -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true \
  -v sonar_data:/opt/sonarqube/data \
  -v sonar_extensions:/opt/sonarqube/extensions \
  sonarqube:latest

访问:http://服务器IP:9000 默认账号密码:admin / admin,首次登录强制改密码

2)PostgreSQL 外置数据库(生产标准)

  1. 创建库与用户

    CREATE DATABASE sonarqube ENCODING 'UTF8' LC_COLLATE 'en_US.utf8' LC_CTYPE 'en_US.utf8';
    CREATE USER sonar WITH PASSWORD 'Sonar@123456';
    GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonar;

  2. 容器挂载配置 sonar.properties 指定数据库连接参数

五、代码扫描示例(Maven Java 项目)

方式 1:Maven 内置 Scanner(最常用)

复制代码
# 本地扫描并上传至Sonar服务
mvn clean package sonar:sonar \
-Dsonar.host.url=http://127.0.0.1:9000 \
-Dsonar.login=你的项目Token

方式 2:CLI Scanner(多语言通用)

下载 sonar-scanner 二进制,执行:

复制代码
sonar-scanner \
  -Dsonar.projectKey=demo-java \
  -Dsonar.sources=./src \
  -Dsonar.host.url=http://127.0.0.1:9000 \
  -Dsonar.login=项目Token

六、主流版本 LTA 长期支持(2026)

  • 9.9 LTA:老稳定版,JDK11 兼容,CentOS7 低环境适配
  • 2025.4 LTA:当前主力长期版,JDK17,增强 SAST 安全、AI 代码校验、PostgreSQL 新版适配(你之前升级 PostgreSQL 配套推荐此版本)
  • 10.x:过渡版本,无长期支持,不建议生产使用

七、常见运维 / 兼容问题(适配 CentOS7+PostgreSQL 升级场景)

  1. ES 启动失败 :系统内核参数调整 vm.max_map_count=262144
  2. 数据库连接报错:社区版新版弃用 MySQL,必须使用 PostgreSQL
  3. PostgreSQL 版本兼容:2025.4 最低 PG14,升级 PG10→17 后需同步升级 Sonar 至 2025.4
  4. 扫描内存溢出 :调整 scanner JVM 参数 -Xmx2048m
  5. Jenkins 流水线阻断:Quality Gate 未通过会返回非 0 退出码,流水线直接失败

八、配套工具 SonarLint

IDE 本地插件,离线实时扫描:

  • 编码时标红漏洞、代码规范问题
  • 无需连接 Sonar 服务,提前修复,减少流水线阻塞
  • 免费,所有版本通用
相关推荐
冬奇Lab8 小时前
Code Agent 解剖(03):各家 LLM 格式不一样,agent 怎么统一对接?
人工智能·开源
冬奇Lab8 小时前
开源项目第189期:DeepTutor — Agent 原生的终身个性化学习工作台,三层记忆+多引擎RAG+Partners
人工智能·开源·资讯
一次旅行9 小时前
2026.08.16 AI产业深度解读|国产大模型全面突围,算力硬件/智能安全/人形机器人四大趋势附落地方案
人工智能·安全·机器人
名字还没想好☜10 小时前
Next.js 用 Server Components 直连数据库:去掉 API 层的边界,和三条别踩的安全红线
前端·javascript·数据库·安全·react·next.js
无凭10 小时前
DeerFlow 的可观测性(一):RunJournal 如何记录 Agent 运行过程
人工智能·开源
SelectDB11 小时前
网易游戏 湖仓一体架构:Apache Doris / SelectDB 的技术能力与实践
开源
liulilittle12 小时前
并发与内存安全术语:定义、分类与关联
c++·安全·并发·术语
zlinear数据采集卡12 小时前
数据采集卡从入门到精通(10):采样率与分辨率的核心关系——反比律、架构分布与过采样
arm开发·嵌入式硬件·算法·fpga开发·架构·开源
m4Rk_14 小时前
【论文阅读】Agent 记忆机制(41):Agentic Plan Caching——将历史执行轨迹转化为可复用的计划记忆
论文阅读·人工智能·学习·开源·github
愚公搬代码14 小时前
【愚公系列】《Web应用安全》006-HackBar插件的使用
前端·安全