SonarQube 6.7未展示C#代码问题求助
解决SonarQube 6.7不展示C#分析结果的问题
我之前也碰到过几乎一模一样的情况,结合你的环境(Ubuntu上的Jenkins 2.89.2、独立部署的SonarQube 6.7、Sonar C# 6.8.1插件),给你几个实用的排查和解决方向:
1. 核对SonarScanner的执行流程与参数
Ubuntu环境下分析C#项目,必须用SonarScanner for MSBuild(或适配.NET的扫描器),且严格遵循三步执行流程,别直接用通用SonarScanner:
# 第一步:初始化分析,指定项目标识、Sonar地址等 dotnet sonarscanner begin /k:"你的项目唯一Key" /d:sonar.host.url="http://你的SonarQube服务器地址" /d:sonar.login="你的Sonar令牌" # 第二步:必须执行项目构建,C#分析依赖编译过程生成的中间文件 dotnet build # 若用Framework项目,需用mono执行msbuild # 第三步:结束分析并上传结果到SonarQube dotnet sonarscanner end /d:sonar.login="你的Sonar令牌"
另外要确保Ubuntu上已正确安装.NET Core SDK或Mono,没有这些环境的话,C#项目无法编译,Sonar也拿不到分析数据。
2. 验证SonarQube的C#插件状态
登录SonarQube后台,进入Administration > Marketplace,确认:
- Sonar C# 6.8.1插件已安装且处于启用状态
- 插件版本与SonarQube 6.7兼容(官方文档里SonarQube 6.7最高适配C#插件6.8.1,这个版本是匹配的,但还是要确认插件没有损坏)
3. 深挖日志找异常
- 查看Jenkins的构建日志,搜索
C#、sonar.cs关键词,看有没有类似No C# files were analyzed或Failed to import C# report的错误提示 - 登录SonarQube服务器,检查
$SONARQUBE_HOME/logs/sonar.log和$SONARQUBE_HOME/logs/web.log,排查是否有接收C#分析结果时的报错
4. 检查分析范围是否排除了C#文件
- 进入项目的SonarQube设置:Project Settings > General Settings > Analysis Scope,确认
Exclusions列表里没有误加*.cs规则 - 同时检查Jenkins扫描参数里有没有设置
sonar.exclusions或sonar.cs.exclusions,这些参数会覆盖全局配置
5. 注意Ubuntu的大小写敏感性
Ubuntu是大小写敏感系统,如果你的扫描配置里写的是*.CS,但实际文件是*.cs,会导致SonarScanner识别不到C#文件,务必保证路径、文件名的大小写和实际一致。
内容的提问来源于stack exchange,提问作者Graham
相关产品推荐
相关产品推荐

