sonarqube 4.2和lombok

时间:2014-04-08 16:15:00

标签: java sonarqube lombok

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

我有

@SuppressWarnings("PMD.UnusedPrivateField")

在所有这些类的开头声明。当我使用SonarQube 3.7和4.0时它工作正常。

我用

mvn sonar:sonar

生成SonarQube报告。

这显示了我班级的样子:

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

如何摆脱版本4.2中的错误?感谢。

2 个答案:

答案 0 :(得分:2)

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

您可能需要检查质量配置文件,最终禁用此规则,或为Lombok扩充类添加一些排除项。

答案 1 :(得分:1)

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

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