我正在尝试在我的代码中使用 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 基本上可以理解 Lombok 注释。)
现在当我创建另一个这样的类时
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、...的许多讨论),我认为它应该可以工作。
(我正在使用 IntellIJ 2016.1.3;SonarLint 2.2;lombok 1.16.8;SonarQube 5.5;SonarQube Java 插件 3.13.1)
有什么帮助吗?