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
}
Run Code Online (Sandbox Code Playgroud)
严重性是主要的。所以,我想忽略它。然后,我将 @SuppressWarning("common-java:DuplicatedBlocks") 和 @SuppressWarning("all") 添加到两个类中。但它不能被忽视。
虽然在JIRA中提出了类似的问题,但尚未解决。我的 SonarQube 的版本是 6.5。谢谢!
有多种方法可以实现这一点,具体取决于您对此重复问题的重视程度。SonarQube 报告它发现的内容,完全由您决定如何处理它。
@SuppressWarnings当 SonarQube 中有专用功能时,对此的注释有点滥用例如,您可以将以下属性添加到您的扫描仪配置中:
sonar.cpd.exclusions=path/to/your/package/*.java
Run Code Online (Sandbox Code Playgroud)
Yog*_*Rai -12
将其放入答案部分以附上屏幕截图:
如果您有足够的信心认为这两个代码块具有不同的角色,那么您可以将报告的严重性级别更改为Web 控制台Minor或Info从 Web 控制台更改。例如,请参见下面的屏幕截图:

有时,Sonar 报告的情况很严重,但实际上并不严重,但这又取决于项目性质:)
但是,就像 @Stephen在上面的评论中提到的那样,如果xxx相同的字段并且继承有意义,那么您可以使用父抽象类来避免报告。
| 归档时间: |
|
| 查看次数: |
24816 次 |
| 最近记录: |