pom.xml是Maven项目的核心配置文件,定义项目标识、依赖管理、构建配置和模块继承。通过groupId、artifactId、version唯一标识项目,dependencies声明依赖并由dependencyManagement统一版本,build中配置插件如maven-compiler-plugin指定编译版本,多模块项目通过parent继承和modules聚合实现统一管理,确保项目结构清晰、依赖一致。

pom.xml 是 Maven 项目的核心配置文件,全称是 Project Object Model(项目对象模型)。它是一个 XML 格式的文件,位于项目的根目录下,定义了项目的结构、依赖、构建方式、插件配置等关键信息。Maven 通过读取 pom.xml 来管理项目的整个生命周期,包括编译、测试、打包、部署等。
project 基本信息配置
每个 pom.xml 都必须包含最基本的项目标识信息,这些信息用于唯一识别一个项目。
- groupId:组织或公司域名倒写,如 com.example
- artifactId:项目名称,如 my-web-app
- version:当前版本号,如 1.0.0-SNAPSHOT
- packaging:打包类型,默认 jar,可选 war、pom 等
- name 和 description:项目名称和描述,便于理解
示例:
依赖管理:dependencies 与 dependencyManagement
Maven 最强大的功能之一就是自动管理项目依赖。你只需在 pom.xml 中声明所需库,Maven 会自动下载并引入到 classpath。
- dependencies:直接列出项目所依赖的库
- 每个依赖包含 groupId、artifactId、version
- 支持 scope 控制依赖的作用范围,如 compile、test、provided、runtime
示例:
对于多模块项目,常使用 dependencyManagement 统一管理版本,避免冲突:
这样子模块引用时无需指定版本,由父 POM 统一控制。
构建配置:build 与 plugins
build 部分定义了项目的编译、打包行为,常用的是配置插件(plugins)来扩展功能。
- sourceDirectory:指定源码目录,默认 src/main/java
- resources:资源文件路径配置
- plugins:配置 maven-compiler-plugin、maven-surefire-plugin 等
常见插件配置示例:
该配置确保项目使用 Java 8 编译。
多模块项目与继承机制
大型项目常拆分为多个模块,通过聚合(aggregation)和继承(inheritance)管理。
- 父 POM 使用 packaging=pom,并定义子模块列表
- 子模块通过
标签继承父 POM 的配置 - 可实现统一依赖管理、插件配置、版本控制
父项目 pom.xml 示例:
子模块中引用父 POM:
基本上就这些。pom.xml 是 Maven 项目的“大脑”,掌握它的核心配置能大幅提升开发效率和项目可维护性。合理使用依赖管理、插件配置和模块化结构,可以让项目更清晰、更稳定。不复杂但容易忽略细节,比如 scope 设置不当会导致运行时找不到类,版本未统一可能引发冲突。熟悉常用标签和最佳实践,是 Java 工程师的基本功。










