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 报告它发现的内容,完全由您决定如何处理它。
@SuppressWarnings
注释有点滥用
sonar.cpd.exclusions=path/to/your/package/*.java
如果您足够有信心这两个代码块具有不同的角色,那么您可以从 Web 控制台将报告的严重性级别更改为
Minor
或
Info
。例如,请参见下面的屏幕截图:有时,Sonar 报告的情况很严重,但实际上并不严重,但这又取决于项目性质:)
但是,就像上面评论中提到的@
Stephen一样,如果xxx
是相同的字段并且继承有意义,那么您可以拥有父抽象类来避免报告。