17370845950

pom.xml文件是什么 Maven pom.xml标签详解
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,也可设为 warpom(用于父工程)、maven-plugin

依赖管理(dependencies)

所有外部库都通过 声明,Maven 自动解析传递依赖并下载到本地仓库:

  • 每个 至少包含 groupIdartifactIdversion
  • 控制依赖生效范围: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 发布构件