Maven3用户必须使用3.x版本的maven-site-plugin
<pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.0-beta-1</version> </plugin> </plugins> </pluginManagement>
Maven2用户应该使用maven-site-plugin最新的2.x版本
<pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>2.1.1</version> </plugin> </plugins> </pluginManagement>
运行mvn site即可直接生成一个最简单的站点。在target/site目录下可以找到Maven生成的站点文件
若想在本地查看结构正确的站点,可以用maven-site-plugin的stage目标,将站点预发布至某个本地临时目录下
mvn site:stage -DstagingDirectory=D:\tmp
默认情况下,Maven生成的站点包含了很多项目信息链接,这实际上是一个名为maven-project-info-reports-plugin的插件生成的。在Maven3中,该插件配置内置在maven-site-plugin中,在Maven2中,该插件的配置内置在核心源码中。该插件会基于POM配置生成下列项目的信息报告:
about:项目的描述
Continuous Integration:项目持续集成服务器信息
Dependencies:项目依赖信息,包括传递性依赖、依赖图、依赖许可证以及依赖文件的大小,所包含的类数目等
Dependency Convergence:只针对多模块项目生成,提供一些依赖健康状况分析
Dependency Management:基于项目的依赖管理配置生成的报告
Issue Tracking:项目的问题追踪系统信息
Mailing Lists:项目的邮件列表信息
Plugin Management:项目所使用插件的列表
Project License:项目的许可证信息
Project Summary:项目概述包括坐标、名称、描述等
Project Team:项目团队信息
Source Repository:项目的源码仓库信息
报告插件在<project><reporting><plugins>下配置
JavaDocs
<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>mavem-javadoc-plugin</artifactId> <version>2.7</version> </plugin> </plugins> </reporting>
在生成站点的时候配置maven-jxr-plugin,Maven会以Web页面的形式将Jave源代码展现出来
<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> <version>2.2</version>
<configuration>
<aggregate>true</aggregate> //聚合模块所有的源码
</configuration> </plugin> </plugins> </reporting>
CheckStyle
checkStyle是一个用来帮助Java开发人员遵循编码规范的工具,能根据一套规则自动检查Java代码,是的团队能够方便地定义自己的编码规范。
默认情况下,maven-checkstyle-plugin会使用Sun定义的编码规范,也能够选择其他的预置规则。
maven-checkstyle-plugin内置了四种规则:
config/sun_checks.xml:Sun定义的编码规范(默认值)
config/maven_checks.xml:Maven社区定义的编码规范
config/turbine_checks.xml:Turbine定义的编码规范
config/avalon_checks.xml:Avalon定义的编码规范
<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkystyle-plugin</artifactId> <version>2.5</version> <configuration> <configLocation>config/maven_checks.xml</configLocation> </configuration> </plugin> </plugins> </reporting>
通常用户所在的组织会有自己的编码规范,这时需要创建自己的checkstyle规则文件,然后再configLocation中配置即可。
maven-checkstyle-plugin还不支持聚合项目,因此想在各个模块中重用自定义的checkstyle规则还要配置一些额外的配置:
1.在聚合模块配置maven-checkstyle-plugin依赖该模块
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.5</version> <dependencies> <dependency> <groupId>co.maven_in_action</groupId> <artifactId>module-a</artifactId> <version>1.0</version> </dependency> </dependencies> </plugin> </plugins> </build>
2.在聚合模块配置maven-checkstyle-plugin使用模块中的checkstyle规则
<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.5</version> <configuration> <configLocation>checkstyle/my_checkstyle.xml</configLocation> <configuration> </plugin> </plugins> </reporting>
PMD
PMD是Java源代码分析工具,它能够寻找代码中的问题。包括嵌在的bug、无用代码、可优化代码、重复代码以及过于复杂的表达式。
<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>2.5</version> <configuration>
<aggregate>true</aggregate>
</configuration>
</plugin> </plugins> </reporting>
maven-pmd-plugin会生成一个PMD和CPD的报告。CPD报告中包含了代码拷贝粘贴的分析结果。PMD包含了大量的分析规则 。PMD默认使用的规则为rulesets/basic.xml、rulesets/unusedcode.xml和rulesets/importss.xml。
<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>2.5</version> <configuration> <rulesets> <ruleset>rulesets/braces.xml</ruleset> <ruleset>rulesets/naming.xml</ruleset> <ruleset>rulesets/strings.xml</ruleset> </rulesets> </configuration> </plugin> </plugins> </reporting>
ChangeLog
maven-changelog-plugin能够基于版本控制系统中就近的变更记录生成三份变更报告,他们分别为:
Change Log:基于提交的变更报告,包括每次提交的日期、文件、作者、注释等信息
Developer Activity:基于作者的变更报告,包括作者列表以及每个作者相关的提交次数和涉及文件数目
File Activity:基于文件的变更报告,包括变更的文件列表及每个文件的变更次数。
要生成项目的变更报告,需要配置正确的SCM信息后,在配置插件即可。
<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changelog-plugin</artifactId> <version>2.2</version> <configiuration>
<type>range</type>
<range>60</range>
</configuration>
</plugin> </plugins> </reporting>