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。谢谢!
答案 0 :(得分:1)
将其放入答案部分以附加屏幕截图:
如果您足够确信这两个代码块具有不同的角色,则可以从Web控制台将报告的严重性级别更改为Minor
或Info
。例如,请参见下面的屏幕截图:
有时候,Sonar报告说,在一些不很严格的事情上,情况很严重,但又取决于项目的性质:)
但是,就像上面评论中提到的@ Stephen一样,如果xxx
是相同的字段并且继承是有意义的,那么您可以使用父抽象类来避免报告。
答案 1 :(得分:0)
有多种方法可以实现此目的,具体取决于您对此重复问题的重视程度。 SonarQube会报告发现的内容,这完全取决于您决定如何处理。
@SuppressWarnings
注释会有点滥用例如,您可以将以下属性添加到扫描仪配置中:
sonar.cpd.exclusions=path/to/your/package/*.java
答案 2 :(得分:0)
答案 3 :(得分:0)