首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Maven札记10-Maven生成项目站点

2012-07-04 
Maven笔记10-Maven生成项目站点1. 生成简单的站点??? (1) 配置??? pluginManagment???????? plugins??

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>

热点排行