Maven 生成站點
通常情況下,一個項目很少是由一個人來開發完成的。不同團隊間或者項目上線后,實際用戶和開發者之間的交流都可以在站點上來完成。用戶可以在站點上獲取操作教程,用戶指南等等,而其他的開發者則可以獲取到關于項目的代碼報告,問題追蹤以及版本發布計劃等等。今天我們來介紹一下如何使用 Maven 來生成站點,并且自定義項目的站點。
1. 構建簡單的站點
首先我們打開 mall-aggregate 目錄下的 pom.xml文件,并且在其中添加 maven-site-plugin
插件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.9.0</version>
plugin>
添加完插件之后,Maven 會自動的下載該插件。下載完成后,我們在 mall-aggregate 目錄下執行mvn clean site
命令。在控制臺顯示構建完成后,我們可以查看項目的 target 目錄中,已經新產生了 site 目錄。這個目錄就是用來存放站點信息目錄。

站點生成成功后,我們可以執行mvn site:run
命令,在運行這個站點。運行的時候會使用 Maven 內置的 jetty 容器來啟動。站點啟動后,我們可以在瀏覽器中輸入localhost:8080/
來瀏覽該站點。
這時候,我們項目的簡單站點就生成好了。在這個簡單站點中,我們可以看到關于我們項目的一些信息,比如模塊劃分,依賴管理,插件管理,項目描述等等信息。有了這個站點,用戶與開發者之間,以及開發者與開發者之間就能夠更好的進行交流了。
2. 生成項目報告的插件
有的時候,我們還想要在站點里面看到其他的一些信息,諸如,API 文檔,代碼規約檢查,以及代碼中是否存在某些 Bug 等等。Maven 也提供了豐富的插件來完成這件事情。這里,我們介紹幾個常用的插件。
首先,我們可以打開 Maven 的官網中的插件列表,可以看到不同生命周期對應的不同插件:

這里,我們添加三個比較常用的插件作為示例,其他的功能的插件可以根據自身項目的需要來自行添加。
2.1 添加 javadoc 插件
首先我們在插件列表中找到對應的插件,點擊進入詳情后,可以查看該插件的使用方式和 Maven 坐標。找到坐標后,我們在 pom.xml 文件中加入該坐標:
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<aggregate>true</aggregate>
</configuration>
</plugin>
</plugins>
</reporting>
在插件的 Usage 頁面我們可以看到添加該依賴的方式有兩種。

兩種添加依賴方式的區別在于,如果將插件放入到 build 節點下,則需要會生成單獨的 javadoc 文檔,如果將插件的依賴放在 reporting 節點下,則產生的 javadoc 會作為項目報告的一部分,即會生成在站點的目錄中。這里,我們選擇的是后面一種,隨著站點的生成,產生 javadoc 。
此時我們在 mall-aggregate 目錄下執行 mvn clean site
命令。站點生成后,執行mvn site:run
命令啟動站點。站點啟動成功后,嘗試訪問站點的地址 localhost:8080
。我們可以看到在站點的目錄中多了一個 Project Reports 的目錄,點開后,我們可以看到 Javadoc 和 Test Javadoc,點擊可以查看其產生的內容。

2.2 添加 checkstyle 插件
checkstyle 插件可以幫助團隊中的各個成員來檢查編碼規范,并生成檢查后的報告。我們首先在 pom.xml 文件中加入 checkstyle 插件的依賴:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
</plugin>
待 Maven 下載該插件完成后,執行命令mvn clean site
來重新生成站點。站點生成后,執行mvn site:run
命令來重新啟動站點。啟動后,同樣是在 Project Reports 目錄下,可以看到新生成的 checkStyle 結果。
2.3 添加 jxr 插件
Maven 的 jxr 插件是一個很強大的插件,可以隨時查看項目的源代碼。相同步驟,首先在 pom.xml 文件中加入 jxr 插件的依賴:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<aggregate>true</aggregate>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
待 Maven 下載該插件完成后,重新生成站點,并重啟站點,即可在左邊的目錄中看到新生成的源碼目錄,點擊后即閱讀其中的源碼。

3. 自定義站點外觀
默認情況下,如果用戶想要自定義站點的外觀,需要在src/site
目錄下創建 site.xml 文件,在該文件中定義其中的參數和配置。
<project name="ximi-mall">
<!-- 定義左側banner -->
<bannerLeft>
<name>Sonatype</name>
<src>http://www.xianlaiwan.cn/static/img/index/logo.png</src>
<href>http://maven.apache.org/</href>
</bannerLeft>
<!-- 定義菜單欄 -->
<body>
<menu ref="reports"/>
</body>
<!-- 定義皮膚 -->
<skin>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-fluido-skin</artifactId>
<version>1.9</version>
</skin>
</project>
這里,我們簡單配置了 site.xml 文件,重新定義了站點的 Logo,以及站點的皮膚(skin)。重新打開站點后,樣式已經發生了很大的變化。
這里面的皮膚可以直接在 Maven 的官網中找到皮膚列表。在這其中選擇自己喜歡的皮膚類型。
4. 小結
本節中,我們簡單介紹了如何使用 Maven 幫助我們來生成自己項目的站點, 以及如何簡單裝飾自己的站點。有了站點,我們可以和用戶以及其他的開發者更好的交流。