1. 概述
Maven是Java世界最常用的构建工具。本质上,它就是一个插件执行框架——所有任务都由插件完成。
本文将介绍Maven的核心插件,并说明这些插件的功能及其与构建生命周期的绑定关系。后续会提供相关教程的参考链接(原文链接已省略)。
2. Maven构建生命周期
核心插件与构建生命周期紧密相关。Maven定义了三个构建生命周期:
- default:负责项目构建全过程(从验证到部署)
- site:生成项目站点文档
- clean:清理构建产物
每个生命周期由多个阶段(phase)组成,执行mvn
命令时会按顺序运行指定阶段及之前的所有阶段。
⚠️ 重点:default生命周期最关键,它覆盖了从项目验证到部署的全流程。
所有插件都需在POM的<build>
元素中声明:
<build>
<plugins>
<!-- 插件配置放在这里 -->
</plugins>
</build>
3. 绑定到Default生命周期的插件
default生命周期的内置绑定取决于POM的packaging
值。这里只讨论最常见的两种打包类型:jar
和war
。
以下是default生命周期各阶段绑定的插件目标(格式:阶段 -> 插件:目标
):
阶段 | 绑定目标 |
---|---|
process-resources | resources:resources |
compile | compiler:compile |
process-test-resources | resources:testResources |
test-compile | compiler:testCompile |
test | surefire:test |
package | ejb:ejb 或 ejb3:ejb3 或 jar:jar 或 par:par 或 rar:rar 或 war:war |
install | install:install |
deploy | deploy:deploy |
这些目标由以下核心插件提供:
✅ Resources插件
处理资源文件复制
✅ Compiler插件
编译Java源代码
✅ Surefire插件
执行单元测试
✅ Failsafe插件
执行集成测试(与Surefire互补)
✅ Verifier插件
验证集成测试结果
✅ Install插件
将构建产物安装到本地仓库
✅ Deploy插件
将构建产物部署到远程仓库
4. 其他核心插件
除了上述插件,还有两个核心插件绑定到site和clean生命周期:
✅ Site插件
生成项目站点文档
✅ Clean插件
清理构建产物(简单粗暴地删除target目录)
5. 总结
本文介绍了Maven的构建生命周期和核心插件。这些插件是Maven构建流程的基石,理解它们的绑定关系能帮你:
- 快速定位构建问题
- 自定义构建流程
- 避免常见配置踩坑
建议深入阅读各插件的官方文档(原文链接已省略),掌握高级配置技巧。