Ошибка сканирования Sonarqube с линией вне диапазона?

[07:43:57] W: [Шаг 1/1] ОШИБКА: Ошибка при выполнении сканера SonarQube

[07:43:57] W: [Шаг 1/1] ОШИБКА: строка 523 находится вне диапазона в файле SRC/главная/Java/ком/компания/пакет/File.java(строки: 522)

По какой-то причине Sonarqube сообщает об ошибке в строке 523, но в исходном файле есть только 522 строки?

Я видел это в предыдущем файле, но когда я добавил пустую строку до конца, проблема исчезла, этот файл уже имеет пустую строку в конце.

Ответ 1

У меня была такая же проблема при использовании плагинов сонара maven и отчетов о тестировании jacoco. mvn sonar:sonar полагается на отчет existintig jacoco, когда исходный код был изменен (строки были удалены), но в отчете об испытаниях не была обновлена ​​эта ошибка. Выполнение mvn clean test sonar:sonar решило его.

Ответ 2

Я попробовал gradle clean build и у меня это сработало

Ответ 3

Для меня это было потому, что у меня было точно такое же имя класса (например com.test.MyClass) и имя пакета в двух разных подмодулях (maven), MyClass в первом модуле больше, т.е. 120 строк кода. MyClass во втором модуле короче, тогда исключение было отправлено с JaCoCo, хотя отчет был для этого.

Решение состояло в том, чтобы переименовать один из классов или переместить его в другой пакет.

то есть.: com.test.MyClass а также com.test.MyClassB

ИЛИ

com.test.MyClass а также com.test.foo.MyClass

Ответ 4

Такая же проклятая проблема возникает и в коде python. Я решил разрешить добавление пустой строки в конец файла.

Ответ 5

Если выполнение maven clean не работает, проверьте, есть ли у вас папка старого проекта, которую нужно очистить. Как только вы удалите подмодуль из maven pom, он не удалит папку, включающую каталог /target с отчетом jacoco много лет назад.

Ответ 6

В моем случае проект iOS, написанный на Swift, должен был удалить предыдущие отчеты. Просто удалите папку sonar-reports.