将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中的错误?感谢。
答案 0 :(得分:2)
'应删除未使用的私有字段'是内部SonarQube规则squid:S1068
生成的消息,而您的@SuppressWarnings
注释会禁用匹配(和已弃用)的PMD检查。
您可能需要检查质量配置文件,最终禁用此规则,或为Lombok扩充类添加一些排除项。
答案 1 :(得分:1)
您还可以使用//NOSONAR
单独排除字段上的声纳分析,这很好,因为如果您的@Data类分散在您的项目中,则不必全局禁用此规则,但这样做选项也有缺点,它禁用此特定线路上的所有声纳分析。
@Data
public class MyClass {
private String field; //NOSONAR
}