Checkstyle
介紹
- 根據定義好的規則對程式碼進行檢查,以確保程式碼的 Style 是一致的 (盡力…)
- Checkstyle GitHub 有提供兩種規則範例,後續套用的規則即是使用 “Google Checks” 進行修改
- Sun Checks
- Google Checks
安裝 Checkstyle
- Preferences.. ➔ Plugins ➔ Browse repositories.. -> 搜尋 “CheckStyle”
- 安裝 “CheckStyle-IDEA”
Checkstyle 規則文件說明
- checkstyle/qmi_checks.xml 為 Checkstyle 主規則檔案
- 定義檢查的檔案格式、範圍
- 定義排除的規則檔案位置 (通常為 suppressions.xml)
- 定義檢查的項目,每一個項目可定義的屬性不固定,需檢視 官方說明文件
- checkstyle/suppressions.xml 為 Checkstyle 的例外設定
- 針對特定檢查規則定義排除檢查的檔案
套用 Checkstyle規則
- 選擇 Checkstyle version: 8.12 (至少8.11, 因有 LambdaParameterName 設定)
- Preferences.. ➔ Other Settings ➔ Checkstyle ➔ Add Configuration File
- 匯入後設定為 Active
啟用 Checkstyle 即時檢查
- Preferences.. ➔ Editor ➔ Inspections ➔ Checkstyle ➔ Checkstyle real-time scan
- 預設為開啟
產生 Checkstyle 檢查報告
- 下載檔案
- 產生XML格式報告
java -jar checkstyle-8.12-all.jar -c qmi_checks.xml {Qmi_Project} -f xml -o report.xml
- 使用 Mac 內建程式 “xsltproc” 將 XML 報表轉成 HTML 格式
xsltproc -o output.html checkstyle-noframes-severity-sorted.xsl input.xml
Code Style
介紹
- Intellij 編輯器內建功能,根據定義好的 Schema 進行檢查
- 官網介紹
- 可透過 “Save Actions” 設定當檔案儲存時自動執行 Reformat Code 及 Optimize Imports 以符合 Code Style 規則
匯入 Code Style 設定檔案
- 檔案位置: checkstyle/qmicodeformat.xml
- Preferences.. ➔ Editor ➔ Code Style ➔ Java ➔ Schema ➔ Import Schema ➔ IntelliJ IDEA code style XML
安裝 Save Actions
- Preferences.. ➔ Plugins ➔ Browse repositories.. -> 搜尋 “Save Actions”
- 安裝 “Save Actions”
設定 Save Actions
- Preferences.. ➔ Other Settings ➔ Save Action ➔ General ➔勾選 “Activate save actions on save (before saving each file, performs the configured actions below)”
- Preferences.. ➔ Other Settings ➔ Save Action ➔ General ➔勾選 “Optimize Imports”, “Reformat file”, “Rearrange fields and methods”
備註說明
- 因 Code Style 的 Arrangement 功能容易跟 Checkstyle 的規則抵觸,估會將 Arrangement 的功能關閉
- JavaDoc 中定義 Map 時,切勿使用 “Map<Object, Object>” 等形式編寫,此會造成 Code Style 誤判而對齊調整格式,導致每次儲存都會出現變動