java - 如何忽略 Sonar 中的重复代码报告?
问题描述
SonarQube 向不同的简单 POJO 类报告为“重复代码块”,如下所示。在这种情况下,A 和 B 是不同的角色。所以,我认为我不应该创建抽象类。
public class A{
private String xxx;
// omitted other fields.
public A() {}
public String getXxx() {
return xxx;
}
public void setXxx(String xxx) {
this.xxx= xxx;
}
// omitted other fields' setter and getter
}
public class B{
private String xxx;
// omitted other fields.
public B() {}
public String getXxx() {
return xxx;
}
public void setXxx(String xxx) {
this.xxx= xxx;
}
// omitted other fields' setter and getter
}
严重性是主要的。所以,我想忽略它。然后,我将@SuppressWarning("common-java:DuplicatedBlocks") 和@SuppressWarning("all") 添加到这两个类中。但它不能被忽视。
尽管在JIRA中提出了类似的问题,但尚未解决。我的 SonarQube 的版本是 6.5。谢谢!
解决方案
有几种方法可以实现这一点,具体取决于您对此重复问题的重视程度。SonarQube 会报告它的发现,由您决定如何处理它。
- 如果您认为这确实是一个问题,则必须重构您的代码:SonarQube cannot report duplication when there are none
- 如果您认为此特定实例不是问题,您可以降低问题的严重性,或将其标记为“无法修复”,并为后面的人提供一个很好的评论 - 我相信使用
@SuppressWarnings
当 SonarQube 中有专用功能时,对此的注释有点滥用 - 如果您认为 SonarQube 甚至不应该引发有关重复代码的问题,您可以禁用规则(核选项),或设置您的分析以忽略 POJO 包的重复
例如,您可以将以下属性添加到扫描仪配置中:
sonar.cpd.exclusions=path/to/your/package/*.java
推荐阅读
- ssl - curl:如何为 https 请求指定目标主机名
- sql - AWS Kinesis Tumbling-Sliding Window Count(流行/趋势计数)
- javascript - 取消绑定后jquery函数停止
- c# - Windows 窗体未在 Listbox_SelectedIndexChanged 中实现异常
- python - python比较CSV并找出差异
- objective-c - WKWebView - 放大后内容不合适
- php - codeigniter 中的“无法找到 session.php”消息
- wpf - WPF TreeView KeyBinding Ctrl + Down
- http - 为(可能)非常大的文本文件发送部分更新/添加
- r - 将列表中的表达式捕获为文本