Сонар + Ломбок ложных срабатываний на аннотации @Data - PullRequest
1 голос
/ 07 октября 2019

Я получаю много запахов кода от сгенерированного lombok кода в Sonar. FE:

Метод Dto.hashCode () сохраняет результат возврата в локальном, прежде чем немедленно его вернуть


Dto.equals (Object) чрезмерно сложенс цикломатической сложностью 58

Как я могу указать сонару, что это должно быть пропущено из анализа?

ОБНОВЛЕНИЕ

Я уже пробовал. Мой lombok.config файл в корневом каталоге:

config.stopBubbling = true
lombok.addLombokGeneratedAnnotation = true
lombok.equalsAndHashCode.callSuper = call

Это не помогает

Я уже пробовал: sonarqube + lombok = ложные срабатывания IВы обновили: sonar-project.properties в корневом каталоге до:

sonar.sources=src/main
sonar.tests=src/test
sonar.language=java
sonar.java.binaries=build/classes
sonar.junit.reportPaths=build/test-results/test/
sonar.jacoco.reportPaths=build/jacoco/jacocoTest.exec
sonar.java.libraries=.gradle/caches/**/lombok-*.jar

Также не работает.


Пожалуйста, не закрывайте его. Это не дублирование.

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

У меня просто была такая же проблема. Я использую sonar-scanner и выяснил, что он должен установить JAR-файл Lombok, используя аргумент командной строки.

Например:

sonar-scanner -D sonar.java.libraries=/home/gitlab-runner/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.10/625fc0055674dff70dbc76efa36d0f2c89b04a24/lombok-1.18.10.jar

Теперь SonarQube не показывает никаких проблем, связанных с аннотациями Lombok.

0 голосов
/ 07 октября 2019

Методы, сгенерированные lombok, должны быть помечены @ Generated . Sonarqube игнорирует их.

Просто добавьте файл lombok.config в корневой каталог проекта со следующим содержимым:

lombok.addLombokGeneratedAnnotation=true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...