Android開發規範:程式碼規範(CheckStyle)
文章目錄
開發APP的過程中,每個團隊都會約定自己的程式碼規範。但是往往在實踐過程中,要麼由於開發週期緊張,大家沒有按照規範進行,而是按照自己的程式設計習慣來開發;要麼是新入職的員工,或者從別的專案組借調過來的員工,不熟悉我們的開發規範。所以有必要用一些強制手段來規範我們設定的程式碼規範。
因此我們引入checkstyle來約束程式碼規範。
checkstyle有兩種使用方式,一種是安裝plugin外掛,還有一種是通過gradle配置。
checkstyle: plugin
1. 安裝外掛
這個因此很簡單,搜尋外掛,安裝,然後選擇一個checkstyle檔案。
2. checkstyle檔案
這裡介紹一下常用的checkstyle檔案。
官網:
https://github.com/checkstyle/checkstyle
各種checkstyle檔案參考:
Google:https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml
順便說一下Google的java程式碼規範,可以預設用這個:
https://google.github.io/styleguide/javaguide.html
中文版本:http://www.hawstein.com/posts/google-java-style.html
需要說明的是google的checkstyle的tab縮排是兩個空格,可以按需改成4個空格來使用。
Sun:https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/sun_checks.xml
HuaWei:https://gist.github.com/ownwell/c32878440216f1866842
3. 實戰:
開啟一個java檔案,右鍵點選:check current file,結果如下:
修改後:
4. 自定義checkstyle
可以參考google的checkstyle檔案,自行修改成為適合自己團隊使用的程式碼規範檔案。
checkstyle: gradle
我們配置gradle指令碼可以讓我們有兩種方式去使用checkstyle:
- 可以直接執行命令執行checkstyle
- 可以在build app的時候,觸發checkstyle任務,用來檢測程式碼規範,如果不符合checkstyle規範,停止執行,並且提供html檔案檢視錯誤詳情,直到完全符合我們定義的checkstyle規範才能繼續執行。
我覺得第二種方式比較使用,使用強制性的方式保證團隊成員提交的程式碼都是符合checkstyle規範的。
操作步驟:
新建一個checkstyle.gradle檔案,內容如下:
allprojects {
project ->
// 程式碼規範檢查
apply plugin: 'checkstyle'
checkstyle {
configFile rootProject.file('config/quality/checkstyle/checkstyle.xml')
toolVersion '8.2'
ignoreFailures false
showViolations true
}
task('checkstyle', type: Checkstyle) {
source 'src/main/java'
include '**/*.java'
exclude '**/gen/**'
classpath = files()
}
tasks.whenTaskAdded { task ->
boolean runCheckStyleOnLocalDev = "${enable_checkstyle}".toBoolean()
boolean runCheckStyleTask = task.name == 'prepareReleaseDependencies' || (runCheckStyleOnLocalDev && task.name == 'preBuild')
if (runCheckStyleTask) { //prepareReleaseDependencies, preBuild
println("checkstyle run task.name :" + task.name)
task.dependsOn 'checkstyle'
}
}
}
其中config/quality/checkstyle/checkstyle.xml是我們專案中checkstyle檔案的路徑。
然後在Project的build.gradle檔案中加上
apply from: './checkstyle.gradle'
執行:
- 直接在terminal裡面輸入:“gradlew checkstyle”,即可執行checkstyle任務,結果如下:
- Ctrl+ B,執行build,檢視結果如下:
紅框內提供了一個檢查報告結果的路徑,我們可以開啟這個html檔案格式的report報表,檢視詳細的檢查結果,然後對比修改成符合我們定義的checkstyle規範的標準的程式碼。
注意:
如果錯誤太多, 輸出的訊息不一定會打印出檢查結果路徑:
如果沒輸出,我們就到各個工程的build\reports\checkstyle路徑下檢視即可。
checkstyle: 155條規範
這個是checkstyle官網提供的檢查標準,截至目前一共155條。
https://checkstyle.org/checks.html
我們在編寫checkstyle的時候可以按照此規範來編寫,點選進入有詳細的屬性介紹,如FileLength: