SonarQube假阳性鱿鱼:S1450用于@Getter(lombok)注释字段

时间:2016-11-02 14:32:39

标签: java sonarqube lombok

我认为在使用@Getter中的Project Lombok注释时发现了误报。

在下面的示例类中,我收到了警告"仅用作方法中的局部变量的私有字段应该成为局部变量" 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

1 个答案:

答案 0 :(得分:5)

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