maven-archetype-plugin
http://maven.apache.org/archetype/maven-archetype-plugin/
Archtype 指 项 目 的 骨 架 ,Maven 初 学 者 最 开 始 执 行 的 Maven 命 令 可 能 就 是 mvn
archetype:generate,这实际上就是让 maven-archetype-plugin 生成一个很简单的项目骨架,
帮助开发者快速上手。可能也有人看到一些文档写了 mvn archetype:create,但实际上 create
目标已经被弃用了,取而代之的是 generate 目标,该目标使用交互式的方式提示用户输入
必要的信息以创建项目,体验更好。maven-archetype-plugin 还有一些其他目标帮助用户自
己定义项目原型,例如你由一个产品需要交付给很多客户进行二次开发,你就可以为他们提
供一个 Archtype,帮助他们快速上手。
maven-assembly-plugin
http://maven.apache.org/plugins/maven-assembly-plugin/
maven-assembly-plugin 的用途是制作项目分发包,该分发包可能包含了项目的可执行文件、
源代码、readme、平台脚本等等。maven-assembly-plugin 支持各种主流的格式如 zip、tar. g z、
jar 和 war 等,具体打包哪些文件是高度可控的,例如用户可以按文件级别的粒度、文件集
级别的粒度、模块级别的粒度、以及依赖级别的粒度控制打包,此外,包含和排除配置也是
支持的。maven-assembly-plugin 要求用户使用一个名为 assembly.xml 的元数据文件来表述打
包,它的 single 目标可以直接在命令行调用,也可以被绑定至生命周期
maven-dependency-plugin
http://maven.apache.org/plugins/maven-dependency-plugin/
maven-dependency-plugin 最大的用途是帮助分析项目依赖,dependency:list 能够列出项目最
终解析到的依赖列表,dependency:tree 能进一步的描绘项目依赖树,dependency:analyze
可以告诉你项目依赖潜在的问题,如果你有直接使用到的却未声明的依赖,该目标就会发出
警 告 。 maven-dependency-plugin 还 有 很 多 目 标 帮 助 你 操 作 依 赖 文 件 , 例 如22
dependency:copy-dependencies能将项目依赖从本地Maven仓库复制到某个特定的文件夹下
面。
maven-release-plugin
http://maven.apache.org/plugins/maven-release-plugin/
maven-release-plugin 的用途是帮助自动化项目版本发布,它依赖于 POM 中的 SCM 信息。
release:prepare 用来准备版本发布,具体的工作包括检查是否有未提交代码、检查是否有
SNAPSHOT 依 赖 、升 级 项目 的 SNAPSHOT 版本至 RELEASE 版 本 、 为项 目打 标 签等 等 。
release:perform 则是签出标签中的 RELEASE 源码,构建并发布。版本发布是非常琐碎的工作,
它涉及了各种检查,而且由于该工作仅仅是偶尔需要,因此手动操作很容易遗漏一些细节,23
maven-release-plugin 让该工作变得非常快速简便,不易出错。maven-release-plugin 的各种目
标通常直接在命令行调用,因为版本发布显然不是日常构建生命周期的一部分。