SonarQube 扫描仪因线路超出范围而失败

Posted

技术标签:

【中文标题】SonarQube 扫描仪因线路超出范围而失败【英文标题】:SonarQube scanner failing with line out of range 【发布时间】:2020-01-23 22:14:04 【问题描述】:

我们有 AzureDevops 构建管道。我们有以下步骤。

    为 SonarQube 准备分析 运行单元测试 运行集成测试 运行代码分析

对于 #4,当我们尝试运行代码分析时,SonarQube 扫描仪会出现一些奇怪的错误。

java.lang.IllegalStateException:第 92 行超出文件范围

但是文件只有 90 行代码。我不知道它为什么抱怨这个?

【问题讨论】:

Line 1203 is out of range when scanning C# file的可能重复 这个问题有什么更新吗?你解决了这个问题吗?如果没有,请告诉我有关此问题的最新信息吗? 【参考方案1】:

SonarQube 扫描仪因线路超出范围而失败

一般来说,这个问题发生在一个文件的行数下降,然后声纳使用缓存,这就是它寻找超出范围的行的原因。

就像user1014639说的:

问题是由于生成了旧代码覆盖率报告 在更新代码之前。生成覆盖后已修复 再次报告。因此,还请确保任何覆盖率报告 上一次运行留下的被清除和新的 覆盖率报告已经到位

所以,请尝试运行命令行:

mvn clean test sonar:sonar

清理旧报告。

此外,如果上述方法对您没有帮助,您应确保分析的源代码与用于生成覆盖率报告的源代码完全相同:

查看this thread了解一些详细信息。

希望这会有所帮助。

【讨论】:

以上是关于SonarQube 扫描仪因线路超出范围而失败的主要内容,如果未能解决你的问题,请参考以下文章

Hive 通用 UDTF 因数组索引超出范围错误而失败

Sonarqube + Jenkins:python 覆盖率报告 => 删除源中的行后行超出范围

std::advance - 仅在调试时偏移超出范围失败

一旦我超出范围并再次进入该区域,就不会扫描信标

调试断言失败,向量下标超出范围

调试断言失败(向量下标超出范围)