讀古今文學網 > Maven實戰 > 15.3.3 CheckStyle >

15.3.3 CheckStyle

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載入規則文件。