Я пытаюсь использовать Project Lombok в своем коде и использую SonarQube и SonarLint (в IntelliJ IDEA).
Когда я создаю новый класс с таким закрытым полем:
public class Test {
private String testfield;
}
затем я получаю правильное предупреждение от SonarQube/SonarLint «Удалить это неиспользуемое личное поле» (squid:S1068
)... (Так что я знаю, что базовая конфигурация работает.)
Когда я добавляю аннотации @Getter @Setter
к полю:
public class Test {
@Getter @Setter
private String testfield;
}
то предупреждение исчезает (правильно!). (Поэтому я знаю, что 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 (и множество обсуждений на stackoverflow, github,... ), и я думаю, что это должно работать.
(Я использую IntelIJ 2016.1.3; SonarLint 2.2; lombok 1.16.8; SonarQube 5.5; SonarQube Java Plugin 3.13.1)
Любая помощь?