代码扫描:sonarqubes+SonarScanner CLI安装部署
一、概述
1.1、SonarQube
- SonarQube是一个Web 应用服务器,用于存储、展示和管理代码质量分析结果。
作用:
接收来自 Scanner 的分析数据
提供 Web 界面查看 bug、漏洞、坏味道、覆盖率等
支持质量门禁(Quality Gate)、项目管理、权限控制等
1.2、SonarScanner CLI
- SonarScanner CLI:官方提供的 独立命令行工具(用 Java 编写),用于分析本地代码并上传结果到 SonarQube。
特点:
支持所有语言(Java、JavaScript、Python、C# 等)
功能最全、性能最好、与 SonarQube 兼容性最佳
需要手动下载安装(.zip 解压)
通过 sonar-project.properties 配置
适用场景:
Java / Maven / Gradle / 多语言混合项目
CI/CD 流水线(Jenkins, GitLab CI 等)
1.3、npx sonarqube-scanner
- npx sonarqube-scanner 一个由社区开发的 Node.js 包(非 SonarSource 官方出品),封装了调用 SonarQube API 的逻辑。
特点:
通过 npm 安装:npm install -g sonarqube-scanner
使用 npx sonarqube-scanner 直接运行(无需单独安装)
底层仍依赖官方 SonarScanner CLI(会自动下载并调用它!)
主要面向 JavaScript / TypeScript / 前端项目
配置通过 sonar-project.json 或命令行参数
适用场景:
纯前端项目(React/Vue/Angular)且不想手动管理 Scanner 安装。
三者对比总结
| 特性 | SonarQube | SonarScanner CLI | npx sonarqube-scanner |
| 类型 | 服务器(Web 应用) | 客户端扫描工具(Java) | 客户端扫描工具(Node.js 封装) |
| 是否官方 | ✅ 是 | ✅ 是 | ❌ 社区维护 |
| 支持语言 | 所有(依赖插件) | 所有 | 主要前端(JS/TS/CSS) |
| Java 支持 | ✅ | ✅ 强大(需配置 binaries) | ⚠️ 弱(不推荐) |
| 安装方式 | 独立部署 | 下载 .zip 解压 | npm install 或 npx |
| 配置文件 | 无(Web 配置) | sonar-project.properties | sonar-project.json 或命令行 |
| 适用项目 | —— | 后端 / Java / 多语言 | 前端 / JS 项目 |
| CI/CD 推荐度 | —— | ✅✅✅ 首选 | ⚠️ 仅限简单前端 |
二、安装
2.1、SonarQube
下载地址:
https://rules.sonarsource.com/

解压: /home/tools/sonar/sonarqube-25.12.0.117093
执行:
进入sonarqube-25.12.0.117093/bin/linux-x86-64
bash sonar.sh start

登录:
默认用户及密码:admin/admin

2.2、SonarScanner CLI
下载地址:https://docs.sonarsource.com/sonarqube-server/analyzing-source-code/scanners/sonarscanner

第一步:将下载的 ZIP 文件解压到一个固定目录,比如:
C:\sonar-scanner
解压后目录结构类似:
C:\sonar-scanner\
├── bin\
│ └── sonar-scanner.bat ← 这就是你要用的命令
├── conf\
│ └── sonar-scanner.properties
└── lib\
第二步:配置环境变量(让系统识别 sonar-scanner 命令)
按下 Win + R,输入 sysdm.cpl,回车 → 打开“系统属性”。
点击 “高级” → “环境变量”。
在 “系统变量” 区域,找到 Path,点击 “”。
点击 “新建”,添加 SonarScanner 的 bin 目录路径:
C:\sonar-scanner\bin
点击“确定”保存所有窗口。
注意:路径必须指向 bin 文件夹,因为 sonar-scanner.bat 在里面。
✅ 第三步:验证是否安装成功
重新打开一个新的命令提示符窗口(重要!旧窗口不会加载新环境变量)。
输入:
sonar-scanner -v
如果看到类似输出,说明安装成功:

更多推荐
所有评论(0)