Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 sonarqube 4.2和龙目岛_Java_Sonarqube_Lombok - Fatal编程技术网

Java sonarqube 4.2和龙目岛

Java sonarqube 4.2和龙目岛,java,sonarqube,lombok,Java,Sonarqube,Lombok,在将SonarQube从4.0升级到4.2之后,我从带有Lombok注释的类中得到了一堆“未使用的私有字段应该被删除”错误 我有 @SuppressWarnings("PMD.UnusedPrivateField") 在所有这些类的开头声明。当我使用SonarQube 3.7和4.0时,它工作得很好 我用 以生成SonarQube报告 这显示了我的班级的样子: @Data @SuppressWarnings("PMD.UnusedPrivateField") public class MyCl

在将SonarQube从4.0升级到4.2之后,我从带有Lombok注释的类中得到了一堆“未使用的私有字段应该被删除”错误

我有

@SuppressWarnings("PMD.UnusedPrivateField")
在所有这些类的开头声明。当我使用SonarQube 3.7和4.0时,它工作得很好

我用

以生成SonarQube报告

这显示了我的班级的样子:

@Data
@SuppressWarnings("PMD.UnusedPrivateField")
public class MyClass {
    private String field;
}

如何在4.2版中消除这些错误?谢谢。

应删除未使用的专用字段”是由内部SonarQube规则
squid:S1068
生成的消息,而您的
@SuppressWarnings
注释禁用匹配(和弃用)PMD检查


您可能希望检查您的质量配置文件,最终禁用此规则,或者对Lombok增强类进行一些排除。

您也可以使用
//NOSONAR
单独排除字段上的声纳分析,这很好,因为如果@Data类分散在项目中,您不必全局禁用此规则,但是这个选项也有一个缺点,就是它禁用了这条特定线路上的所有声纳分析

@Data
public class MyClass {
    private String field; //NOSONAR
}

更准确地说,通过“为Lombok放置排除”,我的意思是您可以为这些类设置一个排除,这样规则仅对相关代码禁用(甚至不修改源代码)。谢谢。这对我很有用。最后,我在“忽略多个条件的问题”一节中添加了一条类似于规则键模式:squid:S1068、文件路径模式:**/beans/.java的规则。现在我还可以从我的类中删除@SuppressWarning。
@Data
public class MyClass {
    private String field; //NOSONAR
}