在通过GitLab的CI系统运行sonarqube分析时,SonarQube扫描过程结束时发生了一个有趣的失败:
进行此过程的Gitlab从机具有以下配置:
使用的SonarQube服务器版本为6.4
似乎Sonar扫描仪仍然指的是该文件的旧版本,该版本的行数比新版本更多。早些时候,我通过删除Gitlab运行中构建的缓存解决了这个问题,但这一次,删除缓存没有任何效果。谷歌搜索这个错误并没有让我在任何地方(或者我的Google Fu弱)。这似乎只是这个特定项目的一个问题,因为对其他dotnet核心项目的SonarQube分析在同一系统上运行良好。
任何指针/帮助/解释都将不胜感激。
编辑:此问题是由文件编码(带BOM的UTF-8)引起的。将编码更改为UTF-8后,错误消失。非常感谢SonarSource团队的Valeri pointing出来
答案 0 :(得分:1)
当项目中的一个或多个文件的编码是"意外"时,通常会发生此错误。到SonarQube。最新版本的SonarC#将打印破坏分析的文件名称,您可以使用不同的编码保存它,通常UTF8没有BOM工作效果最好。
这个问题比较少见,但我认为你是对的,它在我们的文档中应该占有一席之地。我将创建一个页面,并使用链接更新答案。