1. 程式人生 > >SonarQube配置自定義的CheckStyle程式碼規則

SonarQube配置自定義的CheckStyle程式碼規則

對於自定義的CheckStyle程式碼規則如何配置到SonarQube?網上找了很久,也沒找到多少有用的資訊,沒辦法,自己擼吧。一通擼下來發現,其實挺簡單 (⊙▽⊙)

慣例第一步肯定是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認為是重複的配置。┑( ̄Д  ̄)┍

    問題三 配置檔案中不能有規則模板(規則模板後面介紹),當配置檔案中有規則模板,點選建立按鈕時,會有報錯提示,比如:
    <code>規則模板</code>錯誤提示
    上圖錯誤提示的意思是:規則模板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規則