SonarQube 在本地执行分析及自动化运行示例(.NET Core/.NET Framework /JS等)
SonarQube 在本地执行分析
分析方案
一、.NET Core 项目
(一)环境准备
- 安装 .NET SDK:确保系统已配置 .NET SDK,可通过
dotnet --version命令验证。 - 安装 SonarScanner 全局工具:
dotnet tool install --global dotnet-sonarscanner
(二)本地执行分析
在项目目录下,依次执行以下命令:
-
开始分析:
dotnet sonarscanner begin /k:"项目标识" ^ /d:sonar.host.url="sonarqube服务Url" ^ /d:sonar.token="分析令牌" ^ /d:sonar.verbose=true/k:指定项目的唯一标识。/d:sonar.host.url:SonarQube 服务器的地址。/d:sonar.token:用于认证的分析令牌。/d:sonar.verbose:开启详细日志输出。
-
构建项目:
dotnet build 解决方案名称.sln --no-incremental--no-incremental:确保完全重新构建项目。
-
收集测试覆盖率(可选):
dotnet-coverage collect "dotnet test" -f xml -o "coverage.xml"- 使用
dotnet-coverage收集测试覆盖率数据,并输出为 XML 格式。
- 使用
-
结束分析:
dotnet sonarscanner end /d:sonar.token="分析令牌"- 提交分析结果到 SonarQube 服务器。
二、.NET Framework 项目
(一)环境准备
- 安装 .NET SDK:确保系统已配置 .NET SDK。
- 安装 MSBuild:确保 MSBuild 可通过命令行访问,若无法访问,需将 MSBuild 的 Bin 目录添加到环境变量中。
- 下载 SonarScanner for .NET:
- 从 SonarScanner for .NET releases 下载并解压。
- 配置环境变量:将SonarScanner for .NET程序的路径添加到系统的环境变量中。具体操作为:在系统环境变量设置中,找到“Path”变量,点击“编辑”,然后添加SonarScanner for .NET程序的 解压 目录。
- 验证安装:打开命令提示符,输入SonarScanner.MSBuild.exe -h,如果显示帮助信息,则说明安装成功。
(二)本地执行分析
在项目目录下,依次执行以下命令:
-
开始分析:
SonarScanner.MSBuild.exe begin /k:"项目标识" ^ /d:sonar.host.url="SonarQube服务Url" ^ /d:sonar.token="分析令牌" -
构建项目:
MsBuild.exe BTSClient.sln /t:Rebuild/t:Rebuild:强制重新构建解决方案。
-
结束分析:
SonarScanner.MSBuild.exe end /d:sonar.token="分析令牌"
三、其他语言项目(比如JS、TS、GO等)
(一)环境准备
- 下载并解压 SonarScanner(Windows):
- 从 SonarScanner releases 下载对应平台的扫描器并解压。
- 配置环境变量:将SonarScanner扫描器的路径添加到系统的环境变量中。具体操作为:在系统环境变量设置中,找到“Path”变量,点击“编辑”,然后添加SonarScanner扫描器的 bin 目录。
- 验证安装:打开终端或命令提示符,运行以下命令:
sonar-scanner -v,如果安装成功,将显示 SonarScanner 的版本信息。
(二)本地执行分析
在项目目录下,执行以下命令:
sonar-scanner.bat -D"sonar.projectKey=项目标识" \
-D"sonar.sources=." \
-D"sonar.host.url=SonarQube服务Url" \
-D"sonar.token=分析令牌"
-D"sonar.projectKey":指定项目的唯一标识。-D"sonar.sources":指定源代码目录。-D"sonar.host.url":SonarQube 服务器的地址。-D"sonar.token":用于认证的分析令牌。
注意事项
- 确保 SonarQube 服务器已启动且可访问。
- 在开始分析前,需在 SonarQube 服务器上创建项目并获取对应的项目标识和分析令牌。
- 若项目有特殊配置需求,可在命令中添加相应的参数,如指定代码覆盖率报告路径等。
- 分析完成后,可在 SonarQube 服务器上查看详细的分析结果。
- 当前版本SonarQube 服务不支持分支功能,需使用主分支扫描
自动化分析脚本
操作步骤
1、选择方案:根据项目需求,选择合适的分析方案。
2、执行本地分析:在本地执行分析并确保成功。
3、创建批处理文件:参考以下示例代码,将内容复制到文本编辑器中,保存为 .bat 文件(使用 ANSI 编码),例如 sonar_analysis.bat。
4、替换脚本路径:将 执行的脚本 替换为实际的脚本路径。
5、运行批处理文件:通过双击运行该文件,或将其设置为定时任务以自动执行。
示例代码
@echo off
setlocal enabledelayedexpansion
REM 切换到解决方案文件所在的目录
cd /d D:\master
if %ERRORLEVEL% neq 0 (
echo 无法切换到目标目录
pause
exit /b 1
)
REM 开始分析
echo 开始分析...
dotnet sonarscanner begin /k:"项目标识" ^
/d:sonar.host.url="sonarqube服务Url" ^
/d:sonar.token="分析令牌" ^
/d:sonar.verbose=true
if %ERRORLEVEL% neq 0 (
echo 开始分析失败,错误代码:%ERRORLEVEL%
goto end
)
REM 构建项目
echo 构建项目...
dotnet build 解决方案名称.sln --no-incremental
if %ERRORLEVEL% neq 0 (
echo 构建项目失败,错误代码:%ERRORLEVEL%
goto end
)
REM 结束分析
echo 结束分析...
dotnet sonarscanner end /d:sonar.token="分析令牌"
if %ERRORLEVEL% neq 0 (
echo 结束分析失败,错误代码:%ERRORLEVEL%
)
:end
REM 输出最终结果
echo 分析完成...
pause
注意事项
- 确保脚本中的目标目录、分析语句 正确无误。
- 检查文件编码,确保批处理文件保存为 ANSI 编码。
- 在命令提示符中手动运行命令,确认命令本身没有问题。

SonarQube 在本地执行分析(.NET Core/.NET Framework /JS等),包含自动化运行示例
浙公网安备 33010602011771号