Правило сингулярного поля сонара противоречит ломбок-геттеру

Я работаю с сонаром и ломбоком, и кажется, что эти двое не дружат друг с другом.

@Getter
public class MyAwesomeClass {
    private String string1;
    private String string2;
    private String string3;
    ...
}

В приведенном выше примере генерируется метод получения для каждого поля в классе благодаря аннотации @Getter, но сонар предупреждает меня, что эти поля являются «сингулярными полями», которые используются только в одном методе, что не так, потому что генерируемых геттер-методов.

Очевидно, что сонар не учитывает ломбок. У меня вопрос: есть ли возможность отключить эти предупреждения, например, с помощью аннотации @SuppressWarnings?


person muffin    schedule 19.08.2014    source источник


Ответы (2)


SonarQuebe 5.0.X добавляет патч lombok, который работает с Getter'ом lombok.

Патч для SonarQuebe 4.5.X, использующий sonar-java-2.4, можно найти здесь: https://github.com/SonarSource/sonar-java/compare/2.4...liudongmiao:patch-lombok-2.4

Вы также можете скачать двоичный файл отсюда: https://github.com/liudongmiao/sonar-java/releases/tag/2.4-lombok.

person liudongmiao    schedule 18.03.2015

Даже если бы я действительно не стал загромождать код из-за инструмента анализа кода, я полагаю, вы могли бы использовать NOSONAR комментарий. Ваш код будет выглядеть так:

@Getter
public class MyAwesomeClass {
    private String string1; // NOSONAR
    private String string2; // NOSONAR
    private String string3; // NOSONAR
}

На мой взгляд, не очень элегантно, но на самом деле это особенность сонара. В этом случае анализ этих строк следует игнорировать.

Другое, возможно, лучшее решение - отключить конкретное правило. Думаю, лучший ответ на этот вопрос поможет вам с тот.

Оба решения имеют некоторые недостатки. Использование // NOSONAR отключит все проверки правил для этой конкретной строки. С другой стороны, отключив правило, вы избавитесь не только от ложных срабатываний, вызванных Lombok, но и от реальных проблем.

person Magnilex    schedule 26.09.2014