Maven生成项目站点

来源:互联网 发布:淘宝商家支付宝限额 编辑:程序博客网 时间:2024/05/16 07:17

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>


原文:http://springsfeng.iteye.com/blog/1457916

原创粉丝点击