Я пытаюсь использовать Project Lombok в своем коде, и я использую SonarQube и SonarLint (в IntelliJ IDEA).SonarQube @NoArgsConstructor (Project Lombok)
Когда я создаю новый класс с собственным полем, как это:
public class Test {
private String testfield;
}
я получить правильное предупреждение от SonarQube/SonarLint «Удалить это неиспользуемое частное поле» (squid:S1068
) ... (Я Известно, что базовая конфигурация работает)
Когда я добавляю @Getter @Setter
аннотации к полю:.
public class Test {
@Getter @Setter
private String testfield;
}
то предупреждения disapears (правильно!). (Так что я знаю, что SonarQube в основном понимает Ломбок аннотаций.)
И теперь, когда я создаю еще один класс, как этот
public class Test2 {
public static void doSomething() {
System.out.println("hey");
}
}
я получаю предупреждение «Добавить приватный конструктор» (squid:S1118
) ... (это опять-таки правильно и ожидаемый)
Но когда я теперь добавить @NoArgsConstructor
аннотацию, как этот
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class Test2 {
public static void doSomething() {
System.out.println("hey");
}
}
предупреждение по-прежнему остается.
Эта аннотация не поддерживается SonarQube? Я нашел это JIRA issue (и много дискуссий о stackoverflow, github, ...), и я думаю, что он должен работать.
(я использую IntelliJ 2016.1.3; SonarLint 2.2; Ломбок 1.16.8; SonarQube 5,5; SonarQube Java Plugin 3.13.1)
Любая помощь?
Спасибо за ваш ответ. Я уже видел этот запрос на растяжение. Знаете ли вы, есть ли какие-либо планы поддержать это дело SonarQube? Есть ли лучшее решение, чем аннотировать класс с помощью '@SuppressWarnings (" squid: S1118 ")'? –
@CptS см. Редактирование. На этот раз я не забыл про это. – zapl
Звучит здорово! Я попробую это вскоре после обновления плагина Java SonarQube. Спасибо! :) –