讀古今文學網 > Maven實戰 > 15.2 豐富項目信息 >

15.2 豐富項目信息

在15.1節中可以看到,在默認情況下Maven生成的站點包含了很多項目信息鏈接,這其實是由一個名為maven-project-info-reports-plugin的插件生成的。在Maven 3中,該插件的配置內置在maven-site-plugin中,而在Maven 2中,該插件的配置內置在核心源碼中。因此你不需要任何配置就能讓Maven幫你生成項目信息。該插件會基於POM配置生成下列項目信息報告:

·關於(about):項目描述。

·持續集成(Continuous Integration):項目持續集成服務器信息。

·依賴(Dependencies):項目依賴信息,包括傳遞性依賴、依賴圖、依賴許可證以及依賴文件的大小、所包含的類數目等。

·依賴收斂(Dependency Convergence):只針對多模塊項目生成,提供一些依賴健康狀況分析,如各模塊使用的依賴版本是否一致、項目中是否有SNAPSHOT依賴。

·依賴管理(Dependency Management):基於項目的依賴管理配置生成的報告。

·問題追蹤(Issue Tracking):項目的問題追蹤系統信息。

·郵件列表(Mailing Lists):項目的郵件列表信息。

·插件管理(Plugin Management):項目所使用插件的列表。

·項目許可證(Project License):項目許可證信息。

·項目概述(Project Summary):項目概述包括坐標、名稱、描述等。

·項目團隊(Project Team):項目團隊信息。

·源碼倉庫(Source Repository):項目的源碼倉庫信息。

上述有些項是根據項目已有的依賴和插件配置生成的。例如,依賴這一項就很有意思,除了依賴坐標、傳遞性依賴以及依賴圖,可以使用maven-dependency-plugin生成的信息之外,報告還有依賴文件細節的信息,這裡詳細羅列了每個依賴文件的名稱、大小、所包含文件數目、類數目、包數目和JDK版本等信息,如圖15-2所示。

依賴相關的項是基於POM的dependencies和dependencyManagement元素生成的,類似地,其他項也都有其對應的POM元素。Maven不會憑空生成信息,只有用戶在POM中提供了相關配置後,站點才有可能包含這些信息的報告。為了讓站點包含完整的項目信息,需配置POM,如代碼清單15-1所示。

圖15-2 依賴文件細節報告

代碼清單15-1 包含完整項目信息的POM

代碼清單15-1中使用scm元素為項目添加了源碼倉庫信息,使用ciManagement元素為項目添加了持續集成服務器信息,使用developers元素為項目添加了項目成員團隊信息,使用issueManagement元素為項目添加了問題追蹤系統信息,使用licenses元素為項目添加了許可證信息。這時再重新生成站點,相關信息就會體現在站點的項目信息報告中。圖15-3就顯示了一個典型的源碼倉庫信息報告。

圖15-3 項目源碼倉庫信息報告

類似的項目信息報告讀者可以在很多的開源項目中看到,使用Maven站點來一致化開源項目的信息展現方式無疑為用戶獲取信息提供了便利。

有些時候,用戶可能不需要生成某些項目信息項,例如你可能沒有郵件列表或者不想在站點中公開源碼倉庫信息,這時可以配置maven-project-info-reports-plugin選擇性地生成信息項,如代碼清單15-2所示。

代碼清單15-2 選擇性地生成項目信息報告

上述代碼配置了maven-project-info-reports-plugin。需要注意的是,項目報告插件需要在reporting元素下的plugins元素下進行配置,下一節還將介紹其他項目報告插件,也都在這裡進行配置。代碼清單15-2中的配置使得站點的項目信息只包含依賴、團隊、問題追蹤系統和許可證幾項信息,讀者可以根據自己的實際情況選擇要生成的項目信息。