概述

Maven不仅仅是一个自动化构建工具和一个依赖工具,还能够帮助聚合项目信息。POM可以包含各种项目信息、如项目描述、版本控制系统地址、缺陷跟踪系统地址、许可证信息、开发者信息等。 
另Maven社区提供了大量插件,能让用户生成各种各样的项目审查报告,包括测试覆盖率、静态代码分析、代码变更等。

生成站点

对maven2来说,站点生成的逻辑是Maven核心的一部分。对Maven3来说,这部分逻辑已经从核心中移除,需要使用3.x版本的maven-site-plugin

maven3生成站点示例

<pluginManagement>
<plugins>
<plugn>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.0-beta-1</version>
</plugn>
</plugins>
</pluginManagement>

maven2生成站点示例

<pluginManagement>
<plugins>
<plugn>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>2.1.1</version>
</plugn>
</plugins>
</pluginManagement>

配置完成后,运行mvn site就能直接生成一个最简单的站点。

站点的可配置信息

  • 关于(about):项目描述
  • 持续集成(continuous integration):项目持续集成服务信息
  • 依赖(dependencies):项目的依赖信息,包括传递性依赖、依赖图、依赖许可证以及依赖文件的大小、所包含的类数目,此内容可以使用插件maven-dependency-site生成
  • 依赖收敛(dependency convergence):只针对多模块项目生成,提供一些依赖健康状况分析,如各个模块使用的依赖版本是否一致、项目中是否有SNAPSHOT依赖
  • 依赖管理(dependency management):基于项目的依赖管理配置生成的报告
  • 问题追踪(issue tracking):项目的问题追踪系统信息
  • 邮件列表(mailing lists):项目的邮件列表
  • 插件管理(plugin management):项目所使用插件的列表
  • 项目许可证(project license):项目许可证
  • 项目概述(project summary):项目概述包括坐标、名称、描述等
  • 项目团队(project team):项目团队信息
  • 源码仓库(source repository):项目的源码仓库信息

另选择性的生成项目信息项,可使用插件maven-project-info-reports-plugin

<project>
...
<reporting>
<plugins>
<plugn>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.1.2</version>
<reportSets>
<reportSet>
<reports>
<report>dependencies</report>
<report>project-team</report>
<report>issue-tracking</report>
<report>license</report>
</reports>
</reportSet>
</reportSets>
</plugn>
</plugins>
</reporting>
...
</project>

其他项目报告插件介绍

生成项目源码JavaDocs文档

maven-javadoc-plugin

Source Xref可以随时随地打开浏览器访问项目的最新源码

maven-jxr-plugin

CheckStyle帮助Java开发遵循编码规范的工具,能根据一套规则自动检查Java代码

maven-checkstyle-plugin

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

maven-pmd-plugin

ChangeLog基于版本控制生成三份变更报告

maven-changelog-plugin

Cobertura生成测试覆盖率报告

cobertura-maven-plugin

转自:https://blog.csdn.net/fengyunhaitan/article/details/51779749

Maven生成项目站点的更多相关文章

  1. 笔记:Maven 生成项目站点

    Maven 不仅仅时一个自动化构建工具和一个依赖管理工具,他还能够帮助聚合项目信息,促进团队间的交流,POM 可以包含各种项目信息,如项目描述.版本控制系统地址.缺陷跟踪系统地址.许可证信息.开发者信 ...

  2. Maven 生成项目站点

    Maven 不仅仅时一个自动化构建工具和一个依赖管理工具,他还能够帮助聚合项目信息,促进团队间的交流,POM 可以包含各种项目信息,如项目描述.版本控制系统地址.缺陷跟踪系统地址.许可证信息.开发者信 ...

  3. maven生成项目慢解决办法

    maven生成项目慢,原因:在线更新archetype-catalog.xml文件,从Apache中央仓库. 解决办法,手动下载,放到maven环境. 备用下载地址: https://files.cn ...

  4. Maven生成项目文档

    Maven项目可以通过maven-site-plugin插件生成项目文档,无论什么项目都可以生成. 执行命令: mvn site 生成完成的输出目录在${basedir}/target/site文件夹 ...

  5. 今天遇到一个怪异的问题,maven生成项目war包中有一个Jar包不是我指定的版本,运行时会找不到符号,o(╥﹏╥)o

    我要求的jar包: 这是我parent项目中pom文件的依赖管理 这是我要生成war包那个工程最后依赖的jar包,这个时候它们的版本号还是一致的 最后项目生成的: 下图是Dmaven.test.ski ...

  6. Maven用项目模板生成项目

    Archetype插件是Maven生成项目的项目模板,项目模板就是一个框,把文件夹这些定好,然后就可以在上开写具体逻辑等等. 最常用的命令: mvn archetype:generate 这个是生成一 ...

  7. Maven之自定义archetype生成项目骨架(一)

      Maven之自定义archetype生成项目骨架(一) 标签: mavennexus插件 2015-07-15 16:40 2443人阅读 评论(0) 收藏 举报  分类: Maven技术(9)  ...

  8. 一些基本的操作,编译,构建,单元测试,安装,网站生成和基于Maven部署项目。

    一些基本的操作,编译,构建,单元测试,安装,网站生成和基于Maven部署项目. 使用Maven构建项目“mvn package” 来构建项目 使用Maven清理项目“mvn clean” 来清理项目 ...

  9. 利用Maven把项目生成jar包供其他项目使用

    每当搭建框架时,第一步就是为系统整理一个接一个的jar包.用多了就开始深思,如何把自己的项目也整成jar包,供他人使用呢? 近期一直在看徐晓斌所著:<Maven实战>.因自己学识不够,只是 ...

随机推荐

  1. 【POJ - 3259】Wormholes(最短路 Floyd算法)

    Wormholes 题目描述 教学楼里有很多教室,这些教室由双向走廊连接.另外,还存在一些单向的秘密通道,通过它们可以回到过去.现在有 N (1 ≤ N ≤ 500) 个教室,编号 1..N, M ( ...

  2. intellIJ IDEA学习笔记

    如果你初次用idea,毫无目的的度娘如何使用IDEA     浪费的将会是大量的时间.为以表诚意, 上一套IDEA教学视频,以表我诚意.(下载地址:https://pan.baidu.com/s/1g ...

  3. yaml文件解析详解

    前言 yaml文件是什么?yaml文件其实也是一种配置文件类型,相比较ini,conf配置文件来说,更加的简洁,操作也更加简单,同时可以存放不同类型的数据,不会改变原有数据类型,所有的数据类型在读取时 ...

  4. ggplot2 |legend参数设置,图形精雕细琢

    本文首发于微信公众号“生信补给站”,https://mp.weixin.qq.com/s/A5nqo6qnlt_5kF3_GIrjIA 学习了ggplot2|详解八大基本绘图要素后,就可以根据自己的需 ...

  5. 【Spring Boot】利用 Spring Boot Admin 进行项目监控管理

    利用 Spring Boot Admin 进行项目监控管理 一.Spring Boot Admin 是什么 Spring Boot Admin (SBA) 是一个社区开源项目,用于管理和监视 Spri ...

  6. 分布式任务队列--Celery的学习笔记

    一.Celery简介 Celery是一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具.它是一个任务队列,专注于实时处理,同时还支持任务调度. 所谓任务队列,是一 ...

  7. Tomcat源码分析 (九)----- HTTP请求处理过程(二)

    我们接着上一篇文章的容器处理来讲,当postParseRequest方法返回true时,则由容器继续处理,在service方法中有connector.getService().getContainer ...

  8. 使用Sigar做后台服务器管理时,遇到的linux上的问题

    首先是线下猛如虎,线上惨不忍赌........ 问题的出处是: function change() { /*获取cpu*/ $.ajax({ url: "http://localhost:8 ...

  9. SSH开发模式——Struts2(第二小节)

    上一小节已经学会了如何去搭建Struts2的开发环境,该篇博客我们继续深入Struts2,了解Struts2框架的拦截器. 首先对我们在web.xml文件配置的过滤器进行一个源码的分析. 在Strut ...

  10. 第一个基于ArcGIS的Android应用

     使用Android Studio创建第一个工程 打开Android Studio,新建工程.在Application name处填写项目名称,company domain是公司地址,将来作为包名,点 ...