Maven 生成站點(diǎn)
通常情況下,一個(gè)項(xiàng)目很少是由一個(gè)人來開發(fā)完成的。不同團(tuán)隊(duì)間或者項(xiàng)目上線后,實(shí)際用戶和開發(fā)者之間的交流都可以在站點(diǎn)上來完成。用戶可以在站點(diǎn)上獲取操作教程,用戶指南等等,而其他的開發(fā)者則可以獲取到關(guān)于項(xiàng)目的代碼報(bào)告,問題追蹤以及版本發(fā)布計(jì)劃等等。今天我們來介紹一下如何使用 Maven 來生成站點(diǎn),并且自定義項(xiàng)目的站點(diǎn)。
1. 構(gòu)建簡單的站點(diǎn)
首先我們打開 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 會(huì)自動(dòng)的下載該插件。下載完成后,我們在 mall-aggregate 目錄下執(zhí)行mvn clean site
命令。在控制臺(tái)顯示構(gòu)建完成后,我們可以查看項(xiàng)目的 target 目錄中,已經(jīng)新產(chǎn)生了 site 目錄。這個(gè)目錄就是用來存放站點(diǎn)信息目錄。

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

這里,我們添加三個(gè)比較常用的插件作為示例,其他的功能的插件可以根據(jù)自身項(xiàng)目的需要來自行添加。
2.1 添加 javadoc 插件
首先我們在插件列表中找到對應(yīng)的插件,點(diǎn)擊進(jìn)入詳情后,可以查看該插件的使用方式和 Maven 坐標(biāo)。找到坐標(biāo)后,我們在 pom.xml 文件中加入該坐標(biāo):
<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 頁面我們可以看到添加該依賴的方式有兩種。

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

2.2 添加 checkstyle 插件
checkstyle 插件可以幫助團(tuán)隊(duì)中的各個(gè)成員來檢查編碼規(guī)范,并生成檢查后的報(bào)告。我們首先在 pom.xml 文件中加入 checkstyle 插件的依賴:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
</plugin>
待 Maven 下載該插件完成后,執(zhí)行命令mvn clean site
來重新生成站點(diǎn)。站點(diǎn)生成后,執(zhí)行mvn site:run
命令來重新啟動(dòng)站點(diǎn)。啟動(dòng)后,同樣是在 Project Reports 目錄下,可以看到新生成的 checkStyle 結(jié)果。
2.3 添加 jxr 插件
Maven 的 jxr 插件是一個(gè)很強(qiáng)大的插件,可以隨時(shí)查看項(xiàng)目的源代碼。相同步驟,首先在 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 下載該插件完成后,重新生成站點(diǎn),并重啟站點(diǎn),即可在左邊的目錄中看到新生成的源碼目錄,點(diǎn)擊后即閱讀其中的源碼。

3. 自定義站點(diǎn)外觀
默認(rèn)情況下,如果用戶想要自定義站點(diǎn)的外觀,需要在src/site
目錄下創(chuàng)建 site.xml 文件,在該文件中定義其中的參數(shù)和配置。
<project name="ximi-mall">
<!-- 定義左側(cè)banner -->
<bannerLeft>
<name>Sonatype</name>
<src>http://idcbgp.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 文件,重新定義了站點(diǎn)的 Logo,以及站點(diǎn)的皮膚(skin)。重新打開站點(diǎn)后,樣式已經(jīng)發(fā)生了很大的變化。
這里面的皮膚可以直接在 Maven 的官網(wǎng)中找到皮膚列表。在這其中選擇自己喜歡的皮膚類型。
4. 小結(jié)
本節(jié)中,我們簡單介紹了如何使用 Maven 幫助我們來生成自己項(xiàng)目的站點(diǎn), 以及如何簡單裝飾自己的站點(diǎn)。有了站點(diǎn),我們可以和用戶以及其他的開發(fā)者更好的交流。