之前疏理了容器底层原理,现在回归主题,在阅读 next-public时发现 parent 将从多基础插件集成到 parent 仓库中单独维护,数量众多,故在此将所有插件分类整理。以达观其全貌,心中有数。
以下是 Apache Maven 官方维护的核心插件列表(按功能分类),这些插件的 Group ID 通常是 org.apache.maven.plugins
。由于版本和插件会随 Maven 更新而变化,需结合官方文档使用。
构建生命周期插件
- maven-clean-plugin
清理构建生成的目录(如target
)。 - maven-resources-plugin
复制资源文件到输出目录(如src/main/resources
→target/classes
)。 - maven-compiler-plugin
编译 Java 源代码(配置 JDK 版本、编码等)。 - maven-surefire-plugin
执行单元测试(默认运行**/Test*.java
)。 - maven-failsafe-plugin
执行集成测试(支持pre-integration-test
和post-integration-test
阶段)。 - maven-jar-plugin
打包项目为 JAR 文件。 - maven-war-plugin
打包 Web 应用为 WAR 文件。 - maven-ear-plugin
打包企业应用为 EAR 文件。 - maven-install-plugin
将构建产物安装到本地仓库。 - maven-deploy-plugin
将构建产物部署到远程仓库。
报告生成插件
- maven-site-plugin
生成项目文档站点(如mvn site
)。 - maven-javadoc-plugin
生成 JavaDoc 文档。 - maven-project-info-reports-plugin
生成项目信息报告(依赖、开发者列表等)。 - maven-surefire-report-plugin
生成单元测试报告。 - maven-checkstyle-plugin
生成代码风格检查报告。 - maven-pmd-plugin
生成代码静态分析报告(PMD)。 - maven-jxr-plugin
生成源码交叉引用报告(便于在线查看代码)。
依赖管理插件
- maven-dependency-plugin
分析依赖(如复制依赖项、列出依赖树)。 - maven-enforcer-plugin
强制约束环境或依赖版本(如 JDK 版本、Maven 版本)。 - maven-versions-plugin
管理依赖版本(检查更新、升级版本)。
工具类插件
- maven-help-plugin
查看 Maven 信息(如mvn help:effective-pom
)。 - maven-archetype-plugin
创建项目骨架(通过模板生成项目)。 - maven-release-plugin
自动化项目发布流程(版本号管理、SCM 交互)。 - maven-shade-plugin
打包包含依赖的 Uber-JAR(解决依赖冲突)。 - maven-assembly-plugin
自定义打包格式(如 ZIP、TAR 或带依赖的 JAR)。 - maven-source-plugin
生成源码包(附加到构建产物)。 - maven-jlink-plugin
创建自定义 JRE 运行时(Java 9+ 模块化支持)。
其他常用插件
- maven-scm-plugin
与版本控制系统(如 Git/SVN)交互。 - maven-antrun-plugin
在 Maven 中运行 Ant 脚本(兼容旧项目)。 - maven-toolchains-plugin
配置多版本 JDK 工具链。
官方扩展插件(Mojo 项目)
以下插件由 org.codehaus.mojo
维护,但被广泛视为"准官方"插件:
- versions-maven-plugin
管理依赖和插件版本。 - exec-maven-plugin
直接执行 Java 类或命令行程序。 - license-maven-plugin
管理代码许可证。 - cobertura-maven-plugin
生成代码覆盖率报告(Cobertura)。 - buildnumber-maven-plugin
生成唯一构建号。