SonarScanner显示分析成功,SonarQube无C语言代码报告求助
问题:SonarScanner扫描C语言程序成功,但SonarQube显示"主分支无代码行"
环境信息
- 操作系统:Windows 10
- SonarScanner版本:4.8.0.2856
- SonarQube版本:10.0.0.68432
操作流程
- 手动创建项目,选择「Other (for JS, TS, Go, Python, PHP)」作为构建类型
- 修改
conf/sonar-scanner.properties配置文件,添加以下内容:
sonar.host.url=http://localhost:9000 sonar.projectKey=CarbonFootprintCalculator sonar.sources=D:\New folder
- 在代码目录
D:\New folder执行扫描命令:
sonar-scanner.bat -D"sonar.projectKey=CarbonFootprintCalculator" -D"sonar.sources=D:\New folder." -D"sonar.host.url=http://localhost:9000" -D"sonar.token=sqp_5e9cdc0c9da90779005ed42275dfa52e2a2fc08c"
- 扫描输出提示
ANALYSIS SUCCESSFUL和EXECUTION SUCCESS,任务处理API返回状态为SUCCESS,但SonarQube仪表盘显示「主分支无代码行」。
扫描日志关键异常点:
- 仅索引1个文件,但后续无C语言传感器执行记录
CPD Executor Calculating CPD for 0 files,说明没有可分析的代码文件
解决方法
1. 安装SonarC插件
SonarQube默认不包含C语言分析能力,必须安装官方的SonarC插件:
- 登录SonarQube管理员账号
- 进入「Administration > Marketplace」
- 搜索「SonarC」并完成安装
- 重启SonarQube服务
2. 修正路径错误
命令行中sonar.sources参数末尾多了一个点(D:\New folder.),导致路径识别失败,修正后的命令:
sonar-scanner.bat -D"sonar.projectKey=CarbonFootprintCalculator" -D"sonar.sources=D:\New folder" -D"sonar.host.url=http://localhost:9000" -D"sonar.token=sqp_5e9cdc0c9da90779005ed42275dfa52e2a2fc08c"
3. 显式指定分析语言
扫描时添加sonar.language=c参数,强制SonarScanner识别C语言文件:
sonar-scanner.bat -D"sonar.projectKey=CarbonFootprintCalculator" -D"sonar.sources=D:\New folder" -D"sonar.host.url=http://localhost:9000" -D"sonar.language=c" -D"sonar.token=sqp_5e9cdc0c9da90779005ed42275dfa52e2a2fc08c"
4. 检查文件扩展名
确保C语言文件使用.c或.h后缀,若使用自定义扩展名,需添加参数指定:
-Dsonar.c.file.suffixes=.c,.h,.your-suffix
5. 清理扫描缓存
删除代码目录下的.scannerwork文件夹,重新执行扫描,避免缓存干扰。
内容的提问来源于stack exchange,提问作者user21819272
相关产品推荐
相关产品推荐

