Maven笔记10-Maven生成项目站点
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>