Ошибка сканирования 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.