Java NoArgsConstructor SonarQube(龙目岛项目)
我试图在我的代码中使用Lombok项目,并使用SonarQube和SonarLint(在IntelliJ IDEA中) 当我创建一个具有如下私有字段的新类时:Java NoArgsConstructor SonarQube(龙目岛项目),java,intellij-idea,sonarqube,lombok,sonarlint,Java,Intellij Idea,Sonarqube,Lombok,Sonarlint,我试图在我的代码中使用Lombok项目,并使用SonarQube和SonarLint(在IntelliJ IDEA中) 当我创建一个具有如下私有字段的新类时: public class Test { private String testfield; } 然后我从SonarQube/SonarLint得到正确的警告“删除此未使用的私有字段”(squid:S1068)。。。(因此我知道基本配置正在运行。) 当我向字段添加@Getter@Setter注释时: public class Te
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");
}
}
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class Test2 {
public static void doSomething() {
System.out.println("hey");
}
}
我收到警告“添加私有构造函数”(squid:S1118
)。。。(这也是正确的和预期的)
但是当我现在像这样添加@noargsconstuctor
注释时
public class Test2 {
public static void doSomething() {
System.out.println("hey");
}
}
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class Test2 {
public static void doSomething() {
System.out.println("hey");
}
}
警告仍然存在
SonarQube不支持此批注吗?
我发现了这一点(以及关于stackoverflow、github等的许多讨论),我认为它应该会起作用
(我正在使用IntellIJ 2016.1.3;SonarLint 2.2;lombok 1.16.8;SonarQube 5.5;SonarQube Java插件3.13.1)
有任何帮助吗?编辑:从开始,在“[]-使用专用问题过滤器过滤与Lombok注释相关的问题”中,支持使用该警告注释类@noargsconstuctor
可能需要拉取请求
()
Lombok知道
@noargsconstuctor
,但它只使用它来确定类型是否未使用。在检查实用程序类的构造函数时不考虑它
+ private static final Set<String> USED_TYPES_ANNOTATIONS = new HashSet<String>(Arrays.asList(
+ "lombok.Getter",
+ "lombok.Setter",
+ "lombok.Data",
+ "lombok.Value",
+ "lombok.Builder",
+ "lombok.ToString",
+ "lombok.EqualsAndHashCode",
+ "lombok.AllArgsConstructor",
+ "lombok.NoArgsConstructor",
+ "lombok.RequiredArgsConstructor"));
+使用的私有静态最终集\u类型\u注释=新哈希集(Arrays.asList(
+“lombok.Getter”,
+“龙目山塞特”,
+“龙目数据”,
+“龙目山价值”,
+“lombok.Builder”,
+“龙目山,托斯特林”,
+“lombok.EqualsAndHashCode”,
+“lombok.AllArgsConstructor”,
+“龙目山,诺亚格建筑师”,
+“lombok.RequiredArgstructor”);
谢谢你的回答。谢谢你的回答。我已经看过这个请求了。你知道有没有任何计划通过SonarQube来支持这个案子?有没有比用
@SuppressWarnings(“squid:S1118”)
注释类更好的解决方案?@CptS请参见编辑,我希望这次我没有忽略某些内容。听起来很棒!升级SonarqubeJava插件后,我会尽快尝试。谢谢!:)