概述
最近阿里釋出了《阿里巴巴Java開發手冊》,一時間無數阿里擁躉如獲武穆遺書,就在近日阿里又順便釋出了<阿里巴巴java開發規約外掛>,可以輕鬆的在碼字階段獲得相應的編碼提示,那麼,在Gradle中如何應用阿里開發規約
進行程式碼檢查呢.且看下文.
阿里的開發規約外掛是基於PMD進行的程式碼檢測,所以在Gradle應用阿里開發規約
檢查只需要使用gradle
提供的pmd
外掛即可達成目的.
目前阿里開發規約提供瞭如下一些規則配置,要應用這些配置只需要將他們配置到pmd
的檢查規則中即可.
- ali-comment.xml
- ali-concurrent.xml
- ali-constant.xml
- ali-exception.xml
- ali-flowcontrol.xml
- ali-naming.xml
- ali-oop.xml
- ali-orm.xml
- ali-other.xml
- ali-set.xml
PMD介紹
PMD(Project Manager Design)是一種開源分析Java程式碼錯誤的工具。與其他分析工具不同的是,PMD通過靜態分析獲知程式碼錯誤。也就是說,在不執行Java程式的情況下報告錯誤。PMD附帶了許多可以直接使用的規則,利用這些規則可以找出Java源程式的許多問題。此外,使用者還可以自己定義規則,檢查Java程式碼是否符合某些特定的編碼規範。
PMD的核心是JavaCC解析器生成器。PMD結合運用JavaCC和EBNF(擴充套件巴科斯-諾爾正規化,Extended Backus-Naur Formal)語法,再加上JJTree,把Java原始碼解析成抽象語法樹(AST,Abstract Syntax Tree)。以上內容引自百度百科-PMD條目
使用
apply plugin: 'java'
apply plugin: 'pmd'
ext {
p3c = "1.3.0"
}
pmd {
consoleOutput = true
reportsDir = file("build/reports/pmd")
ruleSets = [
"java-ali-comment"
]
}
repositories {
jcenter()
}
dependencies {
pmd "com.alibaba.p3c:p3c-pmd:${p3c}"
}複製程式碼
這裡有幾個需要注意的點
- gradle的pmd外掛為
rule
都新增了預設的java-
字首,一定不要丟掉 - dependencies中依賴的範圍是
pmd
,這樣依賴才會加到pmdClasspath
中為pmd
所用 - 關於本外掛的一些其它配置可以檢視
pmd外掛dsl手冊
執行檢查
該外掛提供瞭如下幾個任務
任務名稱 | 描述 |
---|---|
pmdMain | 檢查src/main/java下的程式碼 |
pmdTest | 檢查src/main/test下的程式碼 |
pmdSourceSet | 檢查給定範圍的程式碼 |
check | 檢查原始碼和單元測試程式碼 |
可以按照需求執行對應任務進行程式碼檢查。
//使用短寫方式執行pmdMain任務
gradle pM複製程式碼
輸出的檢測報告在我們定義的目錄裡可以找到build/reports/pmd