3

在将 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 版中的这些错误?谢谢。

4

2 回答 2

2

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

您可能想要检查您的质量配置文件,最终禁用此规则,或者为 Lombok 增强类设置一些排除项。

于 2014-04-08T19:50:24.003 回答
1

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

@Data
public class MyClass {
    private String field; //NOSONAR
}
于 2014-11-28T23:08:14.853 回答