【问题标题】:SonarQube false positive squid:S1450 for @Getter (lombok) annotated fieldsSonarQube 误报 squid:S1450 用于 @Getter (lombok) 注释字段
【发布时间】:2017-03-15 22:04:24
【问题描述】:

我想我在使用来自Project Lombok@Getter 注释时发现了误报。

在以下示例类中,我收到警告“仅在方法中用作局部变量的私有字段应成为局部变量” (squid:S1450)。

public class Example {

    @Getter
    private String exampleField; // <-- squid:S1450

    public Example(final String value) {
        setExampleField(value);
    }

    private void setExampleField(final String exampleField) {
        this.exampleField = exampleField;
    }

}

有人可以证实这一点吗?这是 SonarQube 规则中的错误,还是我的班级或我对这条规则或 @Getter 注释的理解有问题?

为了完整起见:

  • 在其他 SonarQube 规则中正确识别项目 lombok 注释或生成的方法。所以我认为我的设置很好。
  • 我还尝试将@Getter 注释放在类级别,我得到了同样的警告。
  • 警告显示在 SonarLint(在 IntelliJ IDEA 中)和 SonarQube 的 Web 界面中。所以我认为执行分析器时不会出错。
  • 我已将 IntelliJ IDEA 中的 SonarLint 插件绑定到我们的 SonarQube 服务器,并且此远程连接有效。

我测试过以下版本:

  • SonarQube 6.0
  • SonarQube Java 插件 4.2
  • SonarLint(用于 IntelliJ IDEA)2.3.2
  • IntelliJ IDEA 2016.2.5
  • Java 8

【问题讨论】:

    标签: java sonarqube lombok


    【解决方案1】:

    你说得对,我创建了以下 Jira 票证https://jira.sonarsource.com/browse/SONARJAVA-1924。感谢您的反馈!

    【讨论】:

      猜你喜欢
      • 2017-07-25
      • 2018-03-03
      • 1970-01-01
      • 2016-05-26
      • 2019-03-14
      • 2017-03-11
      • 2020-02-04
      • 1970-01-01
      相关资源
      最近更新 更多