CheckStyle,定製屬於本身的Java編碼規範

 

前言html

 

       現在,代碼規範幾乎是當下稍有追求的團隊都要求作到的,可是對於Java編碼規範,不一樣的公司或團隊卻有着不一樣的標準。儘管官方提供了一些標準,可是在基本規則的基礎上,各大公司又有本身的規範,好比Sun,Google,華爲,阿里等都推出了本身的規範標準,因此對規範進行定製,是常有的需求。而CheckStyle就是這樣一款優秀的代碼規範審查工具,它容許用戶自定義審查標準,而無需人工審查,也無需受限於某一套規則。CheckStyle提供了命令行和插件兩種使用方方式,本文將結合Android Studio導入插件的使用方式,來介紹它,但願你們可以好好享受這款插件。git

 

 

 

1、CheckStyle簡介程序員

 

       Checkstyle是一個開發工具,能夠幫助程序員編寫遵循編碼標準的Java代碼。它自動化了檢查Java代碼的過程,以免人類完成這一枯燥(但很重要)的任務。這使得它很是適合那些但願實施編碼標準的項目。Checkstyle是高度可配置的,能夠支持幾乎任何編碼標準,默認內置Sun Java編碼規範和Google Java編碼規範兩套配置文件,咱們也能夠根據本身的須要配置本身的規範。github

 

 

 

2、CheckStyle的檢查項正則表達式

 

       CheckStyle對Java編碼規範的檢查項主要包括了以下14項:緩存

 

    (1)Annotations:註解。好比deprecad、override、Suppress Warnings等註解符號以及註解風格使用等。網絡

 

    (2)Block Checks:代碼塊檢測。好比代碼塊嵌套、空代碼塊等代碼塊問題。編輯器

 

    (3)Class Design:類設計。好比類的修飾符,設計擴展性,構造函數等相關的問題。ide

 

    (4)Coding編碼問題:代碼中出現的漏洞,性能,冗餘等代碼相關的問題。函數

 

    (5)Headers:頭文件。

 

    (6)Imports:包的導入問題。好比標準中要求避免使用統配導入、避免靜態導入、導入順序,非法導入等。

 

    (7)Javadoc Comments:文檔註釋。包、類、方法等的歸檔註釋問題。

 

    (8)Metrics:度量。好比布爾表達式複雜度、循環複雜度等各類複雜度問題。

 

    (9)Miscellaneous:雜項。好比代碼縮進,一些有用的但非必須的System.out和printstackTrace等問題。

 

    (10)Modifiers:修飾符。好比修飾符是否用對,是否多餘,修飾符順序等。

 

    (11)Naming Conventions:命名約定。包、類、方法、變量等的命令問題。

 

    (12)Regexp:正則表達式。

 

    (13)Size Violations:尺寸超標。好比匿名內部類長度,文件長度,代碼每一行長度,方法數量,等超過規範。

 

    (14)Whitespace:空格。在規範中,要求某些操做符,指定標記等周圍須要有空格。

 

     參考:https://blog.csdn.net/cainiao_accp/article/details/77444028

 

 

 

3、CheckStyle的安裝

 

       與其它的插件同樣,CheckStyle插件也提供了直接在AS的倉庫中安裝和手動離線安裝兩種方式。

 

  一、直接從AS的插件庫下載安裝

 

       至於如何在AS插件庫中安裝插件,在個人另一篇介紹FindBugs的文章【http://www.javashuo.com/article/p-tqxvbbgf-cq.html】中已經介紹過了,這裏就不贅述了。簡單說一下就是File > Settings > Plugins > Browse repositories 搜索 「CheckStyle」,找到「CheckStyle-IDEA」這一項,按照提示進行安裝,而後重啓便可。筆者採用這種方式安裝時,提示了好幾回網絡異常,資源無響應等現象,不過多嘗試幾回就行了。

 

  二、手動下載並從磁盤安裝

 

       請從以下地址獲取離線安裝包:

 

       連接:

 

       提取碼:

 

 

 

4、使用CheckStyle進行分析

 

  一、啓動CheckStyle

 

    (1)在AS的左下角有個「CheckStyle」按鈕,從這裏能夠打開CheckStyle面板,從中啓動掃描功能。該面板各項功能在下文會詳細介紹。

 

       

 

    (2)在Java文件的編輯界面點擊右鍵,在彈出的菜單中找到「Check Current File」,點擊便可開始掃描。默認是檢測當前文件,在控制面板中能夠選擇檢測範圍。

 

 

 

  二、檢查結果

 

       檢查完後會顯示以下CheckStyle面板,會展現檢查出來的各項問題點。該面板各個區域的功能,後面再詳細介紹。

 

 

 經過點擊檢查結果列表區域,能夠定位到問題代碼源碼處。

 

 

 

5、CheckStyle面板介紹

 

  一、工具欄

 

 

 

    (1)Close CheckStyle Window:關閉CheckStyle面板窗口

 

    (2)Stop the running scan:中止當前正在運行的掃描

 

    (3)Check Current File:在編輯器中當前文件上運行CheckStyle

 

    (4) Check Module:在當前Module上運行CheckStyle

 

    (5)Check Project:在當前項目上運行CheckStyle

 

    (6)Check All Modified Files:檢查全部修改的文件,結合版本控制工具一塊兒使用。

 

    (7)Check Files in the Current Change List:檢查當前change list中的文件

 

    (8)Reload Rules files:清理規則文件(即配置文件)緩存和黑名單,強制從新加載改變後的規則文件。

 

    (9)Autoscroll to Source:自動滾動到錯誤和警告的源碼位置處。

 

    (10)Expand All:展開全部工具窗口(即控制面板)的元素

 

    (11)Collapse All:收起全部工具窗口的元素

 

    (12)Display Errors:展現錯誤,結果窗口會顯示

 

    (13)Dispaly Warnings:展現警告

 

     (14)Display Information Results:展現信息結果

 

       對照說明和每一項的運行結果,各個功能項的做用就很容易理解了。

 

  二、選擇檢查規則

 

       ②處須要事先選擇好掃描所採用的代碼規範配置文件,默認是沒有選擇的。

 

 

 默認這裏只有「Sun Checks」和「Google Checks」,「Huawei_CheckStyle」是華爲的規範配置,「songwei-style」是本身配置的規範。選擇其中某項後,才能以該項對應的配置文件來進行檢查。如何添加/刪除配置文件,後文會再講到。

 

  三、檢查結果列表

 

       ③處顯示檢查後的結果,以樹狀結果展現。點擊具體某一項後,能夠直接跳到問題代碼處。

 

 

 

6、配置CheckStyle

 

       File > Settings > Checkstyle就可進入到以下配置界面。

 

 

這裏咱們介紹部分區域功能,其它部分比較簡單,就很少說了。

 

  一、掃描範圍

 

       選擇掃描範圍,每一項含義比較簡單,就很少介紹了。

 

 

二、管理配置文件(這一項很重要)

 

       這裏面默認的只有「Sun Checks」和「Google Checks」,後面有「bundled」標識,標識是捆綁在CheckStyle插件中的。要採用哪套規則做爲規範標準,須要選中該項。左邊的按鈕就是添加新的配置文件或者對選中的配置項刪除或者編輯。這裏着重介紹一下添加新配置項,點擊「+」按鈕彈出以下對話框:

 

 

配置好後,按照嚮導操做便可。

 

 

 

7、定製配置文件

 

       因爲Sun和Google的檢查過於嚴格,因此通常咱們須要本身配置或者使用國內業界比較知名的成熟配置方案,好比華爲的配置文件。若是咱們要徹底本身定製的話,能夠參照Sun、Google、華爲等的模板進行修改。這裏提供這三種配置文件的路徑:

 

    (1)華爲配置文件

 

       連接:https://pan.baidu.com/s/1tlvHtezgjwRIUA8DBVYFUQ

 

       提取碼:qxji 

 

    (2)Sun Check配置文件

 

       https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/sun_checks.xml

 

    (3)Google Check配置文件

 

       https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml

 

      這些文件都是以 <module>...</module>對的形式組成的,這每一對就表示了一條匹配的規則。以下就是一條對「JavadocType」的匹配規則,若是不須要檢查這一項,能夠直接註釋掉,或者根據須要作其它修改。

 

1 <module name="JavadocType">
2     <property name="authorFormat" value="\S"/>
3     <property name="scope" value="protected"/>
4     <property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/>
5 </module>

 

若是須要了解每個屬性的做用等更深刻的知識,能夠查看CheckStyle官網:https://checkstyle.org/index.html進行學習,這裏就不深刻介紹了。

 

結語

       本文只介紹了CheckStyle常見的一些使用方法,必定還有不少很牛的功能,但願讀者們多多探索,多多交流,共同進步,謝謝!

相關文章
相關標籤/搜索