Site Report

顧名思義,就是用產生整個專案的報表,之前我設定了不少<reporting>的tag,用來設定產生報表的相關設定。

生命周期也有說過site生命周期主管文件產製,配合前述提過的Plugins,在此提供一份我的設定給各位參考。

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.12.1</version> <dependencies> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-module-markdown</artifactId> <version>1.12.0</version> </dependency> </dependencies> <configuration> <stagingDirectory>/tmp/site</stagingDirectory><!--如果是多模組下, 應指定各個模組報表之最終合併目錄 --> <locales>zh_TW</locales> </configuration> </plugin> </plugins> </build> <reporting> <plugins><!--開始在此放入相應報表的 pluing 設定, 包含在軟體品質保證一節中提到的各個Pluings Reporting設定--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version>3.5.0</version> <configuration> <dependencyLocationsEnabled>false</dependencyLocationsEnabled> </configuration> <reportSets> <reportSet> <reports> <report>index</report> <report>plugin-management</report><!--專案外掛程式管理 (Project Plugin Management),設定要出哪些報告--> <!--report>distribution-management</report> 發佈管理--> <report>scm</report><!--原始碼貯藏庫 (Source Repository)--> <!--report>mailing-lists</report> 專案郵件列表 (Project Mailing Lists)--> <!--report>issue-management</report> 問題追蹤 (Issue Tracking)--> <!--report>ci-management</report> 持續整合 (Continuous Integration)--> <report>plugins</report><!--專案建構外掛程式 (Project Build Plugins)--> <report>summary</report><!--專案摘要 (Project Summary)--> <report>dependencies</report> <!--專案依賴 (Project Dependencies)--> <report>dependency-management</report> <report>dependency-convergence</report> <report>dependency-info</report> <!--<report>modules</report>--> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> <version>3.3.2</version> <configuration> <aggregate>true</aggregate> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>3.2.5</version> <configuration> <junitReport>true</junitReport> <exportAll>true</exportAll> </configuration> <reportSets> <reportSet> <id>integration-tests</id> <reports> <report>report-only</report> <report>failsafe-report-only</report> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.6.3</version> <configuration> <verbose>false</verbose> <locale>zh_TW</locale> <encoding>UTF-8</encoding> <docencoding>UTF-8</docencoding> <linksource>true</linksource> <doclint>accessibility,html,reference,syntax</doclint> <failOnError>false</failOnError> <source>${maven.compiler.source}</source> <additionalparam>-Xdoclint:none</additionalparam> <links> <link>https://docs.spring.io/spring-framework/docs/current/javadoc-api/</link> ... </links> <javaApiLinks> <property> <name>api_17</name> <value>https://docs.oracle.com/en/java/javase/17/docs/api/</value> </property> </javaApiLinks> <additionalJOptions>-J-Dhttp.agent=maven-javadoc-plugin-${pom‌​.name}</additionalJOptions> <additionalJOptions>--allow-script-in-comments</additionalJOptions> <doctitle>${project.name}</doctitle> <windowtitle>${project.name} API</windowtitle> </configuration> <reportSets> <reportSet> <id>default</id> <reports> <report>javadoc</report> <report>aggregate</report><!--多模組時加這設定--> </reports> </reportSet> </reportSets> </plugin> <plugin> …其它Pluings的設定 </plugin> </plugins> </reporting>

像要有spotbus的報表,就必須要走過compile 與 check goal(預設綁定verify生命週期),其它的Plugins的報表也是要滿足各自的條件。 最通用的作法就是 mvn version site,也是是在生命週期verify走完成再來走 site的生命週期是最保險。

如果是多模組專案,則必須設定<maven-site-plugin> <configuration><stagingDirectory>設定後再執行 site:stage goal.

mvn verify site site:stage