CheckStyle是一個用來幫助Java開發人員遵循編碼規範的工具,能根據一套規則自動檢查Java代碼,使得團隊能夠方便地定義自己的編碼規範。關於該工具的詳細信息可以訪問http://checkstyle.sourceforge.net/進行瞭解。
要讓Maven在站點中生成CheckStyle報告,只需要配置maven-checkstyle-plugin,如代碼清單15-6所示。
代碼清單15-6 配置maven-checkstyle-plugin插件
運行mvn site命令後,就能得到圖15-7所示的CheckStyle報告。
圖15-7 CheckStyle報告
默認情況下,maven-checkstyle-plugin會使用Sun定義的編碼規範,讀者能夠選擇其他預置的規則。也可以自定義規則,maven-checkstyle-plugin內置了四種規則:
·config/sun_checks.xml:Sun定義的編碼規範(默認值)。
·config/maven_checks.xml:Maven社區定義的編碼規範。
·config/turbine_checks.xml:Turbine定義的編碼規範。
·config/avalon_checks.xml:Avalon定義的編碼規範。
用戶可以配置maven-checkstyle-plugin使用上述編碼規範,如代碼清單15-7所示。
代碼清單15-7 配置maven-checkstyle-plugin使用非默認編碼規範
通常用戶所在的組織會有自己的編碼規範,這時就需要創建自己的checkstyle規則文件。如在src/main/resources/目錄下定義一個checkstyle/my_checks.xml文件,然後配置<configLocation>checkstyle/my_checks.xml</configLocation>即可。maven-checkstyle-plugin實際上是從ClassPath載入規則文件,因此對於它來說,無論規則文件是在當前項目中還是在依賴文件中,處理方式都是一樣的。
對於多模塊項目來說,使用maven-checkstyle-plugin會有一些問題。首先,(到本書編寫為止)maven-checkstyle-plugin還不支持報告聚合。也就是說,用戶無法在聚合項目的報告中得到所有模塊的CheckStyle報告。想要在各個模塊中重用自定義的checkstyle規則還需要一些額外的配置。具體過程如下:
1)創建一個包含checkstyle規則文件的模塊:
2)在聚合模塊配置maven-checkstyle-plugin依賴該模塊:
3)在聚合模塊配置maven-checkstyle-plugin使用模塊中的checkstyle規則:
原理就是先創建一個包含自定義規則文件的依賴,然後將該依賴加入到項目的ClassPath中,最後從ClassPath載入規則文件。