pom.xml 是 Maven 项目的 XML 格式核心配置文件,定义项目坐标(GAV)、依赖、构建行为及高级功能。1. 坐标含 groupId、artifactId、version 和 packaging;2. 依赖通过 dependency 声明并支持 scope 和 exclusions;3. build 配置 finalName、resources 和 plugins;4. parent、modules、profiles 和 distributionManagement 支撑多模块、环境适配与发布。

pom.xml 是 Maven 项目的核心配置文件,全称是 Project Object Model(项目对象模型)。它用 XML 格式定义了项目的结构、依赖、构建行为、开发者信息等全部元数据。简单说,它是 Maven 知道“怎么编译你这个项目”的唯一依据。
基础坐标与项目标识
每个 Maven 项目必须声明唯一的坐标(GAV),这是 Maven 区分和管理依赖的基础:
-
groupId:通常为公司或组织域名倒写(如
com.example),代表项目所属的命名空间 -
artifactId:项目模块名(如
user-service),不带空格和下划线,建议小写字母+短横线 -
version:语义化版本号(如
1.2.0),含-SNAPSHOT表示开发中快照版,可被自动覆盖更新 -
packaging:默认
jar,也可设为war、pom(用于父工程)、maven-plugin等
依赖管理(dependencies)
所有外部库都通过 声明,Maven 自动解析传递依赖并下载到本地仓库:
- 每个
至少包含groupId、artifactId、version -
控制依赖生效范围:compile(默认,编译+运行)、test(仅测试阶段)、provided(如 Servlet API,由容器提供)、runtime(如 JDBC 驱动) - 可用
排除某依赖带来的冲突子依赖
构建配置(build)
定义如何编译、打包、资源过滤等关键流程:
-
指定生成的 jar/war 文件名(不带版本后缀) -
声明哪些目录下的配置文件需要参与构建,支持启用占位符替换(如true ${project.version}) -
是重点:每个插件对应一个构建任务,例如maven-compiler-plugin控制 JDK 版本,maven-surefire-plugin管理单元测试执行
高级能力标签
这些标签支撑多模块协作、环境适配与发布管理:
-
:声明父 POM,实现版本、插件、依赖的统一管理(适合 Spring Boot 多模块项目) -
:列出子模块路径,配合mvn clean install可一键构建整个聚合工程 -
:按环境(dev/test/prod)切换配置,配合命令行-Pprod激活 -
:指定部署目标仓库(如 Nexus 私服地址),配合mvn deploy发布构件










