zoukankan      html  css  js  c++  java
  • 项目站点

    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: mp

    默认情况下,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>
  • 相关阅读:
    python类库31[正则表达式匹配实例]
    Mysql百万级数据迁移实战笔记
    面试官:一千万数据,怎么快速查询?
    为什么MySQL不建议使用NULL作为列默认值?
    Redis各个数据类型最大存储量
    Rabbitmq延迟队列实现定时任务
    PHPstorm批量修改文件换行符CRLF为LF
    使用SeasLog打造高性能日志系统
    协程编程注意事项
    Rabbitmq 安装过程中常见问题(亲测可行)
  • 原文地址:https://www.cnblogs.com/forerver-elf/p/6266087.html
Copyright © 2011-2022 走看看