对于maven,官方网站给出的解释是–maven的核心是一个执行插件的框架,所有的工作都是由插件完成的(Maven is - at its heart - a plugin execution framework; all work is done by plugins)。所以我们平时使用的都是一堆插件(plugins)。其插件分为两类:构建插件(build plugins)和报告插件(reporting plugins)。
build plugins我们实际工作中经常使用。在构建(build)时使用,在pom里都是包含在<build>标签的。
reporting plugins在执行mvn site 时,会生成一个报表。配置标签是<reporting>。由于插件的生成结果是生成站点的一部分,插件需要国际化和本地化。
下面将例举一些常见的plugins。
核心插件(Core plugins)
插件 | 插件类型 | 描述 |
---|---|---|
clean | build plugins | 清理后构建 |
compiler | build plugins | 编译java文件 |
deploy | build plugins | 将构建好的成品部署到离线库中(通常是maven私服) |
failsafe | build plugins | 在一个独立的classloader中运行JUnit集成测试 |
install | build plugins | 将构建好的成品安装到本地仓库 |
resources | build plugins | 复制resources里的文件到输出文件夹中,目的在于让这些文件包含进jar包中 |
site | build plugins | 给当前工程生成一个站点 |
surefire | build plugins | 在一个独立的classloader中运行JUnit单元测试 |
verifier | build plugins | 验证一些条件(conditions)切实存在,对集成测试有用 |
打包工具
插件 | 插件类型 | 描述 |
---|---|---|
shade | build plugins | 将当前工程和引用的依赖构建一个jar(原文Uber-jar,同super-jar,包含编译内容和第三方依赖) |
报告插件(reporting plugins)
插件 | 插件类型 | 描述 |
---|---|---|
changelog | reporting plugins | 从SCM(software configuration management)生成最近变更列表 |
changes | build and reporting plugins | 从问题追踪(issue tracker)或者变更文档生成报告 |
doap | build plugins | 从POM中生成文档描述 |
javadoc | build and reporting plugins | 给工程生成javadoc |
工具
插件 | 插件类型 | 描述 |
---|---|---|
assembly | build plugins | 旨在允许用户将项目的输出内容、依赖、模块、站点文档和其他文件合并到一个单独的可分发的文档中 |