1. 生成简单的站点
(1) 配置
<pluginManagment>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.0-beta-3</version>
<!--配置站点生成时的当地语言-->
<configuration>
<locales>zh_CN</locales>
</configuration>
<plugin>
<plugins>
</pluginManagment>
说明:若需要该插件生成正确的中文站点,需要确保项目的所有源码及资源文件均以UTF-8保存,并续作以
下配置:
<properties>
<!--指定Maven用什么编码来读取源码及文档-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--指定Maven用什么编码来呈现站点的HTML文件-->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</project>
(2) 生成
命令:mvn site
说明:
A. 默认情况下使用mvn site命令生成了很多项目信息的连接,是其实是使用一个名为maven-project-info
-reports-piugin的插件生成的,在Maven3中该插件内置在核心源码中,该插件生成的项目信息时根据POm中
的配置生成的。
B. 如果是聚合项目,需将站点预发布只某个本地临时的目录下,才可查看各子模块的连接:
mvn site:stage -DstagingDirectory=D:\tmp
使用maven-project-info-reports-piugin选择性生成项目信息报告:
<project>
...
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-piugin</artifactId>
<version>3.0-beta-3</version>
<reportSets>
<reports>
<report>dependencies<report>
<report>project-team</report>
<report>issus-tracking</report>
<report>license</report>
</reports>
</reportSets>
</plugin>
</plugins>
</reporting>
...
</project>
2. 项目报告插件
(1) JavaDocs
基于项目的源码生成JavaDocs文档:
<project>
...
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8.1</version>
</plugin>
</plugins>
</reporting>
...
</project>
说明:该最新版本的插件已经考虑到针对聚合项目可以生成所有模块的JavaDocs.
(2) SourceXref
便于通过浏览器访问项目的源代码:
<project>
...
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
<!--针对聚合项目整合所有源码需增加下面的配置--->
<configuration>
<aggregate>true</aggregate>
</plugin>
</plugins>
</reporting>
...
</project>
(3) CheckStyle
根据一套编码规则自动检查编码:
<project>
...
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.9.1</version>
<!--针对聚合项目整合所有源码需增加下面的配置--->
<configuration>
<configLocation>config/maven_check.xml</ configLocation >
</ configuration>
</plugin>
</plugins>
</reporting>
...
</project>
说明:maven-checkstyle-plugin定义了四种规则:
A. config/sun_checks.xml:Sun定义的编码规范(默认值).
B. confgi/maven_checks.xml:Maven社区定义的编码规范。
C. confgi/turbine_checks.xml:Turbine定义的编码规范。
D. config/avalon_checks.xml:Avalon定义的编码规范。
针对自定义的编码规则,可在src/main/resources目录下定义一个checkstyle/my_check.xml文件,然后
配置<configLocation>checkstyle/my_check.xml</ configLocation>即可。
(4) PMD
Java源代码分析工具:
<project>
...
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.5</version>
<!--针对聚合项目需增加下面的配置--->
<configuration>
<aggregate>true</ aggregate >
</ configuration>
<!--PMD默认的规则为rulesets/basic.xml,rulesets/unusedcode.xml,
rulesets/importss.xml,若不使用默认规则,自动规则配置方式如下。-->
< configuration>
<rulesets>
<ruleset>rulesets/string.xml</ruleset>.
</rulesets>
</ configuration>
</plugin>
</plugins>
</reporting>
...
</project>
(5) ChangeLog
基于版本控制系统只能够就近的变更记录生成三分变更报告,分别为:
A. Change Log:基于提交的变更报告,包括每次提交的日期、文件、作者、注释等信息;
B. Developer Activity: 基于作者的变更报告,包括作者列表及每个作者相关的提交次数和涉及文件数目;
C. File Activity:基于文件的变更报告,包括变更的文件列表及每个文件的变更次数。
若要生成变更报告,首先需要配置正确的SCM信息:
<project>
...
<scm>
<connection>scm:svn:http://192.168.1.103/app/trunk</connection>
<developerConnection>scm:svn:https://192.168.1.103/app/trunk</developerConnection>
<url>http://192.168.1.103/account/trunk</url>
</scm>
...
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changelog-plugin</artifactId>
<version>2.2</version>
<!--生成最近30天内的变更记录--->
<configuration>
<type>range</type>
<range>60</range>
</ configuration>
</plugin>
</plugins>
</reporting>
...
</project>
(6) Cobertura
用于在站点中生成测试覆盖率报告:
<project>
...
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
</plugin>
</plugins>
</reporting>
...
</project>