【问题标题】:sonarqube 4.2 and lombok声纳 4.2 和龙目岛
【发布时间】:2014-05-21 11:28:29
【问题描述】:

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

【问题讨论】:

    标签: java sonarqube lombok


    【解决方案1】:

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

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

    【讨论】:

    • 更准确地说,通过“排除 Lombok”,我的意思是您可以为这些类设置 rule exclusion,以便仅对相关代码禁用规则(甚至无需修改源代码)。
    • 谢谢。这对我行得通。我最终在“忽略多个标准的问题”部分中放置了类似于 Rule key pattern: squid:S1068, File Path Pattern: */beans/.java 的规则。现在我也可以从我的课程中删除@SuppressWarning。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-10-02
      • 1970-01-01
      • 2015-04-04
      • 2021-03-27
      • 2015-10-18
      • 1970-01-01
      • 2016-06-29
      • 2016-10-08
      • 2011-06-19
      相关资源
      最近更新 更多