`

maven日记(十一):生成项目站点

阅读更多

最简单的站点,首先配置maven3的maven-site-plugin,这个在外层的parent的pom.xml中定义:

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.2</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

注意,可以写在pluginManagement中,然后运行:mvn site即可

>> 项目报告插件:JavaDocs:

<project>
    ...
    <reporting>
        <plugins>
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.8.1</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
            </plugin>
        </plugins>
    </reporting>
    ...
</project>

运行:mvn site后就能看到JavaDoc了。

>> 源码插件:Source Xref

如果能随时随地打开浏览器访问项目的最新源代码,那就无敌了。额,maven-jxr-plugin貌似能帮我们完成这个心愿:

<reporting>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>2.3</version>
        <configuration>
                    <aggregate>true</aggregate>
            <encoding>UTF-8</encoding>
                </configuration>
        </plugin>
    </plugins>
</reporting>

>> 代码规范插件:CheckStyle

CheckStyle用来帮助Java开发人员规范编码,而且可以自定义自己的一套编码规范,通过maven-checkstyle-plugin集成起来:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.9.1</version>
    <configuration>
        <configLocation>config/sun_checks.xml</configLocation>
        <!--<configLocation>config/maven_checks.xml</configLocation>-->
        <!--<configLocation>config/turbine_checks.xml</configLocation>-->
        <!--<configLocation>config/avalon_checks.xml</configLocation>-->
    </configuration>
</plugin>

默认的就是sun_checks.xml,另外还有三个备选方案,而且用户可以自己定义自己的checks.xml编码规范。

>> 源码分析工具 PMD:

PMD是一款强大的Java源代码分析工具,它能够寻找代码中的问题,包括潜在的bug、无用代码、可优化代码、重复代码以及过于复杂的表达式。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-pmd-plugin</artifactId>
    <version>2.7.1</version>
    <configuration>
        <rulesets>
        <ruleset>rulesets/basic.xml</ruleset>
        <ruleset>rulesets/unusedcode.xml</ruleset>
        <ruleset>rulesets/importss.xml</ruleset>
        <ruleset>rulesets/braces.xml</ruleset>
        <ruleset>rulesets/naming.xml</ruleset>
        <ruleset>rulesets/strings.xml</ruleset>
        </rulesets>
        <aggregate>true</aggregate>
    </configuration>
</plugin>

>> 版本控制报告:ChangeLog

maven-changelog-plugin能够基于版本控制系统中就近的变更记录生成三分变更报告:

* Change Log:基于提交的变更报告,包括每次提交的日期、文件、作者、注释等

* Developer Activity:基于作者的变更报告,包括作者列表以及每个作者相关的提交次数和涉及文件数目。

* File Activity:基于文件的变更报告,包括变更的文件列表以及每个文件的变更次数。

要想使用ChangeLog插件,必须先定义好SCM信息:

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

有了scm信息,开始配置maven-changelog-plugin了:

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

>> 测试覆盖率插件:Cobertura

前面介绍过用Cobertura生成测试覆盖率报告,现在介绍如何将其集成到项目站点中去。

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>

>> 国际化配置:

先确保项目所有的源码,包括pom.xml、site.xml以及apt文档等等都是UTF-8编码

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

然后配置locales为zh_CN,这个是为了国际化显示用,比如货币、日期、数字等显示成符合zh的格式:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-site-plugin</artifactId>
    <version>3.2</version>
    <configuration>
    <locales>zh_CN</locales>
    </configuration>
</plugin>

>> 部署站点:

maven支持多种协议部署站点,包括FTP、SCP、DAV

<distributionManagement>
    <site>
        <id>app-site</id>
        <url>dav:https://www.springzoo.com/sites/app</url>
    </site>
</distributionManagement>

服务器必须支持WEBDAV,为了确保安全,服务器需要认证,而这个认证就是修改.m2/settings.xml文件:

<settings>
    ...
    <server>
        <id>app-site</id>
        <username>test</username>
        <password>*****</password>
    </server>
</settings>

如果想使用FTP协议部署站点,而且个人推荐这种方法,除了配置正确的部署地址和认证信息外,还要配置额外的扩展组件wagon-ftp:

<build>
    ...
    <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <locales>zh_CN</locales>
                </configuration>
            </plugin>
        </plugins>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ftp</artifactId>
                <version>2.3</version>
            </extension>
        </extensions>
</build>
<distributionManagement>
    <site>
        <id>app-site</id>
        <url>ftp://www.springzoo.com/sites/app</url>
    </site>
</distributionManagement>

同样也是要跟上面一样在settings.xml文件中配置FTP登陆的认证信息。

所有配置好以后,只要一句话即可部署整个项目站点了:

# mvn clean site-deploy

 

本人博客已搬家,新地址为:http://www.pycoding.com/

分享到:
评论

相关推荐

    Maven3实战笔记14Maven生成项目站点

    Maven 项目站点详解Maven 的项目站点功能是一个强大的文档生成工具,它可以帮助开发者生成项目相关的各种报告,包括但不限于项目信息、开发团队、源代码管理、持续集成、问题跟踪、许可证信息等。通过这些信息,...

    Maven插件源码:根据库表生成实体类&根据实体类生成库表

    本文将深入探讨一个特定的Maven插件,该插件能够根据数据库中的库表生成Java实体类,同时也能根据已有的实体类在数据库中创建相应的库表。这个插件的实现和应用对于提升开发效率、减少手动编写代码的工作量以及确保...

    Maven报错: Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.0.2:resources

    idea创建Maven项目时,报错显示Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.0.2:resources,并且Maven插件内看不到 mybatis-generator。如下图: 折腾了好久发现配置放错地方了,...

    Maven的安装包:apache-maven-3.6.1-zip

    Apache Maven 是一个强大的Java项目管理工具,它基于项目对象模型(Project Object Model, POM)的概念,能够自动化构建、依赖管理和项目信息管理。Maven 的核心理念是通过标准化项目结构和依赖管理,简化Java开发...

    maven 配置文件:settings.xml详解版,只需修改本地仓库路径即可使用

    使用eclipse整合maven时所需要使用的配置文件;只需修改文件中的本地仓库路径即可完成整合,java初学者必选。

    license-maven-plugin:Maven插件,用于从项目依赖项下载和收集许可证文件

    许可证Maven插件 这是 。 发行 确保gpg-agent正在运行。 执行mvn -B release:prepare release:perform 要发布站点,请执行以下操作: cd target/checkout mvn verify site -DperformRelease scm-publish:publish-...

    自定义maven插件:自动生成API的word文档源代码

    首先,Maven是一个广泛使用的Java项目管理工具,它提供了丰富的插件机制,允许开发者根据项目需求创建自定义插件。在这个场景下,我们创建了一个自定义的Maven插件,它的主要功能是根据用户提供的接口类和参数类信息...

    swagger-codegen-maven-plugin:一个Maven插件来支持swagger代码生成项目

    swagger-codegen-maven-plugin [![Maven版本] [maven-img]] [maven-url] 一个Maven插件来支持代码生成项目用法添加到您的build-&gt;plugins部分(默认阶段是generate-sources阶段) &lt; plugin&gt; &lt; groupId&gt;...

    maven-test:maven项目上传测试

    Maven通过插件来扩展其功能,比如`maven-surefire-plugin`用于运行测试,`maven-javadoc-plugin`生成文档等。在`pom.xml`中添加插件配置,可以定制化Maven的行为。 8. Maven的聚合与模块项目: 如果一个项目由多...

    maven-examples:Maven示例

    Maven的例子 :party_popper: 一个用于测试和试验各种Maven插件和配置的游乐场。 外挂程式 :electric_plug: Maven插件 项目 描述 网站 ...原型以生成示例Maven项目 Maven原型快速入门 允许生成示例Mav

    Maven 生成打包可执行jar包的方法步骤

    在Java开发中,Maven是一个强大的构建工具,它可以帮助开发者管理项目依赖,自动化构建过程,以及打包应用。本文将详细讲解如何使用Maven生成可执行的JAR包,以满足特定的需求。 首先,我们来看一下生成可执行JAR包...

    apache-maven-3.5.2

    首先去官网下载 Maven:http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.0.4-bin.tar.gz 下载完成之后将其解压,我将解压后的文件夹重命名成 maven,并将它放在 D:\Server 目录下,即 maven...

    maven-project:Maven项目

    - 生命周期:Maven有三个主要生命周期阶段:clean(清理)、default(构建)和site(站点生成)。 2. Jenkins CI与Maven的结合: Jenkins是一个持续集成工具,能够自动化各种任务,包括构建、测试和部署。在...

    精通Maven依赖冲突:策略、工具与实战技巧

    Maven的核心是一个项目对象模型(POM),利用这个模型的概念,可以管理项目的构建、依赖、文档创建、站点发布和分发等步骤。 Maven的主要目标是提供一个可重复使用、可维护且易于理解的项目综合模型,以及与此模型...

    maven资源程序: 扫描Jersey资源并自动生成客户端代码

    在Java开发领域,Maven是一个广泛使用的项目管理工具,它帮助开发者管理依赖、构建项目以及执行各种生命周期任务。本文将详细讲解如何利用Maven资源程序,特别是“maven-restapi-codegen-maven-plugin”,来扫描...

    maven-simple:示例Maven项目演示了如何使用

    使用maven-archetype-quickstart生成的示例Maven项目 要在您的Maven构建中使用它,请添加: &lt; id&gt;jitpack.io &lt; url&gt;https://jitpack.io&lt;/ url&gt; 和依赖性: &lt; groupId&gt;...

    maven_archetype

    当开发者使用 Maven Archetype 创建项目时,Maven 会依据指定的 archetype ID 生成一个新的目录结构,该结构包含了项目的基本文件和目录,如 `pom.xml`(项目对象模型),源代码文件夹(`src/main/java`,`src/test/...

    MAVEN安装包:apache-maven-3.0.5.zip

    - **maven-site-plugin**: 生成项目站点文档。 以上就是 Maven 安装包 apache-maven-3.0.5.zip 的相关知识点,通过理解并熟练运用 Maven,开发者可以更高效地管理 Java 项目,提高开发和维护的效率。

    doxygen-report-maven-plugin:生成 Doxygen API 文档的 Maven 报告插件

    使用doxygen-report-maven-plugin的好处在于,它可以无缝集成到Maven的构建流程中,使得API文档的生成与项目构建同步,确保文档的及时更新。同时,通过Maven的配置,可以轻松地在不同环境中保持一致的文档生成规则,...

Global site tag (gtag.js) - Google Analytics