@Getter (lombok) 注释字段的 SonarQube 误报 squid:S1450
SonarQube false positive squid:S1450 for @Getter (lombok) annotated fields
我想我在使用 @Getter
annotation from Project Lombok 时发现了误报。
在下面的例子中 class 我得到了警告 "Private fields only used as local variables in methods should become local variables" (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 规则中的错误还是我的 class 或我对这条规则或 @Getter
注释的理解有问题?
为了完整起见:
- 项目 lombok 注释或生成的方法在其他 SonarQube 规则中被正确识别。所以我认为我的设置很好。
- 我也尝试将
@Getter
注释放在 class 级别,但我收到了同样的警告。
- 警告显示在 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
你是对的,我创建了以下 Jira 票证 https://jira.sonarsource.com/browse/SONARJAVA-1924。感谢您的反馈!
我想我在使用 @Getter
annotation from Project Lombok 时发现了误报。
在下面的例子中 class 我得到了警告 "Private fields only used as local variables in methods should become local variables" (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 规则中的错误还是我的 class 或我对这条规则或 @Getter
注释的理解有问题?
为了完整起见:
- 项目 lombok 注释或生成的方法在其他 SonarQube 规则中被正确识别。所以我认为我的设置很好。
- 我也尝试将
@Getter
注释放在 class 级别,但我收到了同样的警告。 - 警告显示在 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
你是对的,我创建了以下 Jira 票证 https://jira.sonarsource.com/browse/SONARJAVA-1924。感谢您的反馈!