【轉】SonarQube配置自定義的CheckStyle代碼規則


原文地址:https://www.jianshu.com/p/ff1d800885ce

慣例第一步肯定是SonarQube的安裝與運行配置了,但這部分不在本文主題內,網上一搜一大把,這里就不講了,大家可以先看這篇文章:SonarQube的安裝、配置與使用
。我們直接講自定義CheckStyle代碼規則的配置方法。
(注:不同的SonarQube版本可能略有不同,大家按線索來)

1、CheckStyle插件安裝(熟悉的可跳過)

 

 
CheckStyle插件安裝操作步驟

如圖所示,在 應用市場中搜索CheckStyle即可,搜索出來后,點擊 安裝按鈕(我這里已經安裝了,未安裝的情況再 卸載按鈕的地方會有 安裝按鈕),即可下載安裝,安裝過程中會有一次重啟操作,大家按提示操作即可。
(注:有些版本的SonarQube插件安裝是在 配置- 系統- 更新中心

 

2、配置自定義的CheckStyle代碼規則

配置自定義的CheckStyle代碼規則,有兩種方法,使用CheckStyle代碼規則配置文件啟用SonarQube中的CheckStyle相關代碼規則,下面一一介紹:

  • 使用CheckStyle代碼規則配置文件
    注意:這種方法只有新建一個質量配置時才能用,質量配置創建好后,就不能利用配置文件來配置代碼規則了。
     

     

    按照上面兩個圖,填寫好相關信息后,點擊創建按鈕。這里有幾個問題需要注意下:
    • 問題一 配置文件不能以<?xml version="1.0" encoding="UTF-8"?>開頭,否則點擊創建按鈕時會有如下錯誤提示:

       
      配置文件中有<?xml?>標簽

      因此要把此標簽去掉,直接以<module>標簽開頭,如下圖所示:
       
      配置文件去掉xml文件頭標簽

       

    • 問題二 配置文件中不能有重復的規則,否則點擊創建按鈕時,會有報錯提示,比如:

       
      重復規則錯誤提示
      上圖中提示ReturnCountCheck進行了重復配置,看一下配置文件
       
      這里我們需要對構造函數和lambda表達式的返回語句個數進行不同的配置,但是SonarQube認為是重復的配置。┑( ̄Д  ̄)┍

       

    • 問題三 配置文件中不能有規則模板(規則模板后面介紹),當配置文件中有規則模板,點擊創建按鈕時,會有報錯提示,比如:

       
      `規則模板`錯誤提示
      上圖錯誤提示的意思是:規則模板checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.FinalLocalVariableCheck不能被激活。這條規則是檢測從未改變的局部變量是否添加final修飾詞,那么如果我們需要添加這條規則,怎么處理呢?留到啟用SonarQube中CheckStyle相關代碼規則方法去說。

       

通過使用配置文件的方法配置自定義的CheckStyle代碼規則,或多或少還會有其它問題,要根據提示處理配置文件。所以,一般情況下,不建議使用這種方法,事倍功半的說。╥﹏╥

  • 啟用SonarQube中CheckStyle相關代碼規則

     
    如圖所示,在質量配置中會顯示SonarQube中所有已安裝編程語言中創建好的規則配置(每個語言都有內置Sonar way的默認配置),可見,剛剛創建的CheckStyle配置中,通過文件已配置了18條規則,接下來我們再進行添加。點擊配置名稱,進入配置詳情頁:
     
    質量配置詳情
    點擊更多激活規則
     
    可激活規則列表
    上圖中左邊欄的用於篩選的,可從語言、規則類型、標簽、資源庫等等進行篩選,這里我們要用到資源庫的篩選,選中資源庫后,會列舉出已安裝的插件列表,選中CheckStyle,頁面中會篩選出CheckStyle的可配置規則(上圖已經篩選好了,顯示有136條可配置的規則)。

     

    接下來就可以對這136條規則進行配置了,細心的同學可能已經發現了,規則列表中的規則有兩類:非模板規則(有活動按鈕,無規則模板的標簽)和模板規則(無活動按鈕,有規則模板的標簽)。所以,我們也分兩類講:

    • 非模板規則
      對於非模板規則,我們直接在規則列表中點擊列表項的活動按鈕即可,在彈出的對話框中填寫屬性值,如下圖所示:
       
      激活非模板規則
      如果想先了解下規則的內容,也可以先點擊規則名稱進入詳情頁,詳情頁也有激活的入口。
    • 規則模板
      對於規則模板,是沒有直接的激活按鈕的。那么規則模板怎么激活呢?且聽下回分解……O(∩_∩)O哈哈~(玩笑臉)
      規則模板,需要我們先根據模板創建一條規則,之后再激活創建的規則。接下來說步驟(以上文說的規則模板Final Local Variable為例)
      •  

         

        在規則列表中找到這表規則,點擊規則名稱進入詳情頁
         
        規則詳情頁
      • 點擊創建按鈕,彈出自定義規則創建框
         
        創建自定義規則
        根據提示填寫相關信息后(子屬性根據需要進行填寫,不填則使用默認值),點擊創建按鈕。
        創建成功的規則如下圖所示:
         
        在自定義規則下面會有一個創建的規則列表。此時回到之前的規則列表后,會在列表中找到剛剛創建的規則,點擊列表項的活動即可激活。其次,也可以在此頁面點擊自定義的規則名稱,進入詳情頁
         
        自定義規則詳情頁
        在此頁面中,可以進行二次編輯刪除激活等操作。

配置好后,可在配置詳情頁中點擊CheckStyle的鏈接,以XML的格式查看已配置好的規則,如下圖所示:

 

 
配置好的CheckStyle規則


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM