亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何忽略 Sonar 中的重復代碼報告?

如何忽略 Sonar 中的重復代碼報告?

陪伴而非守候 2021-11-24 15:48:04
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。謝謝!
查看完整描述

3 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

有多種方法可以實現這一點,具體取決于您對此重復問題的重視程度。SonarQube 報告它發現的內容,完全由您決定如何處理它。

  • 如果您認為這確實是一個問題,則必須重構您的代碼:SonarQube 在沒有重復時無法報告重復

  • 如果您認為此特定實例不是問題,您可以降低問題的嚴重性,或將其標記為“無法修復”,并為將要跟隨您的人提供一個很好的評論 - 我相信使用@SuppressWarnings當 SonarQube 中有專用功能時,對此的注釋有點濫用

  • 如果您認為 SonarQube 甚至不應該引發關于重復代碼的問題,您可以禁用規則(核選項),或者設置您的分析以忽略 POJO 包的重復

例如,您可以將以下屬性添加到您的掃描儀配置中:

sonar.cpd.exclusions=path/to/your/package/*.java


查看完整回答
反對 回復 2021-11-24
?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

將此放入答案部分以附上屏幕截圖:

如果您確信這兩個代碼塊具有不同的角色,那么您可以將報告的嚴重性級別更改為web-consoleMinorInfo從 web-console更改。例如,請參見下面的屏幕截圖:

http://img1.sycdn.imooc.com//619dee5b000149cf13820389.jpg

有時聲納報告的事情不是很嚴重,但同樣取決于項目性質:)

但是,就像@Stephen在上面的評論中提到的那樣,如果xxx相同的字段和繼承有意義,那么您可以使用父抽象類來避免報告。


查看完整回答
反對 回復 2021-11-24
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

最好的方法是調整質量門以滿足您的需要。需要記住,默認的內置質量門是標準的,應該始終是首選。

復制默認值并創建一個新的質量門。編輯它以根據您的舒適程度(取決于您的項目需要)接受重復百分比。

http://img1.sycdn.imooc.com//619dee700001982225211025.jpg

查看完整回答
反對 回復 2021-11-24
  • 3 回答
  • 0 關注
  • 2080 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號