【Maven实战】之生成项目站点

最简单的站点

  • 通过【maven-site-plugin】生成
  • Pom配置
Maven3:
<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.3</version>
        </plugin>
    </plugins>
</pluginManagement>
注意:如果报缺少
java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter
则把maven-site-plugin从3.0升级到3.3+
  • 执行Maven命令
mvn site

项目报告插件

JavaDoc
  • 基于项目源代码生成JavaDocs文档
<reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.7</version>
            </plugin>
        </plugins>
    </reporting>
Source Xref
  • 将源代码通过web形式出来,方便团队之间的交流
<reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </reporting>
  • 如果想在聚合模块整合所有的源码,则需添加格外的aggregate配置
<reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </reporting>
CheckStyle
  • 帮助Java开发人员遵循编码规范的工具
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                   <configLocation>config/maven_checks.xml</configLocation>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

- 有以下四种编码规则

  1. config/sun_checks.xml sun定义的编码规范(默认值)
  2. config/sun_checks.xml Maven社区定义的编码规范
  3. config/turbine_checks.xml Turbine定义的编码规范

4. config/avalon_checks.xml Avalon定义的编码规范

PMD
  • 一款强大的Java源代码分析工具,能够寻找代码中的问题,包括潜在的Bug,无用代码,可优化代码,重复代码以及过于复杂的表达式。
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>2.5</version>
            </plugin>
        </plugins>
    </reporting>
  • 支持聚合报告
    <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>
ChangeLog

- 基于版本控制系统中就近的变更记录生成三份变更报告,分别是:

  1. Change Log 基于提交的变更报告,包括每次提交的日期,文件,作者,注释等信息
  2. Developer Activity 基于作者的变更报告

1. File Activity 基于文件的变更报告

  • 配置SCM配置
<scm>
 <connection>scm:svn:http://192.168.1.103/app/trunk</connection> --表示只读的scm地址
 <developerConnection>scm:svn:https://192.168.1.103/app/trunk</developerConnection>--表示一个可写的scm地址
 <url>http://192.168.1.103/account/trunk</url>--表示可在浏览器访问的url地址
</scm>
  • 配置reporting
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-changelog-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                <!--修改默认值-->
                    <type>range</type>
                    <range>60</range>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
Cobertura
  • 生成代码覆盖率报告
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.4</version>
            </plugin>
        </plugins>
    </reporting>

部署站点

  • 三种部署站点协议
DAV
<project>
    ...
    <distributionManagement>
        <site>
            <id>app-site</id>
            <url>dav:https://www.baidu.com/sites/app</url>
        </site>
    </distributionManagement>
    ...
</project>
  • 如果需要认证,则在【setting.xml】配置server
<servers>
    <server>
        <id>app-site</id>
        <username>demo</username>
        <password>demo</password>
    </server>
</servers>
FTP
  • 需要额外配置拓展插件【wagon-ftp】
<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.3</version>
            </plugin>
        </plugins>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ftp</artifactId>
                <version>1.0-beta-6</version>
            </extension>
        </extensions>
    </build>

    <distributionManagement>
        <site>
            <id>app-site</id>
            <url>ftp:https://www.baidu.com/sites/app</url>
        </site>
    </distributionManagement>
    ...
</project>
SCP
<project>
    ...
    <distributionManagement>
        ...
        <site>
            <id>app-site</id>
            <url>scp:https://www.baidu.com/sites/app</url>
        </site>
    </distributionManagement>
    ...
</project>
  • 注意:与dav和ftp不同的是,scp协议通常使用密钥进行认证,因此在【setting.xml】配置认证信息时,有可能需要【passphrase】和【privateKey】,如下
<servers>
    <server>
        <id>app-site</id>
        <passphrase>demo</passphrase>
        <privateKey>demo</privateKey>
    </server>
</servers>

  • 布置完后,只需要输入以下命令就能够让Maven部署站点:
mvn clean site-deploy
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值