Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NoArgsConstructor SonarQube(龙目岛项目)_Java_Intellij Idea_Sonarqube_Lombok_Sonarlint - Fatal编程技术网

Java NoArgsConstructor SonarQube(龙目岛项目)

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

我试图在我的代码中使用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");
    }
}
@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插件后,我会尽快尝试。谢谢!:)