pom.xml 是 Maven 项目的配置核心,定义坐标(groupId、artifactId、version)、基础配置(modelVersion、properties)、依赖管理(dependencies、scope)、构建插件(build、plugins)等,缺一不可。

pom.xml 是 Maven 项目的“心脏”,它用 XML 描述项目的一切:你是谁、依赖什么、怎么打包、用什么 Java 版本、测试怎么跑……没它,Maven 就不知道从哪下手。
核心坐标:项目唯一身份标识
每个 Maven 项目必须有 groupId、artifactId 和 version,三者合起来叫“坐标”,就像身份证号一样不可重复。
-
groupId:通常用公司/组织域名倒写,比如
com.example或org.springframework.boot -
artifactId:项目名,小写短横线风格更常见,比如
user-service、common-utils -
version:语义化版本,如
1.2.0、2.0.0-SNAPSHOT(带 SNAPSHOT 表示开发中) -
packaging:默认
jar,Web 项目常用war,父模块用pom
基础配置块:modelVersion 和 properties
modelVersion 是固定值 4.0.0,代表当前 POM 遵循的规范版本,不能改。
properties 块用来定义可复用的变量,避免硬编码:
一款非常包包、衣服、鞋子类网站,页面干净清洁、一目了然,mttshop打造精致、简单、易用、免费的商城。 系统要求:IIS5.1以后,必须安装.net 3.5 安装步骤: 1、下载完成后,直接解压文件mttshop.rar 2、附加数据库:解压后的可以找一个叫db的文件夹,解压后直接附加就可以,支持SQL 2000、2005、2008 3、配置web.config文件,找到key=&qu
-
控制编译和运行的 JDK 版本17 -
统一源码编码UTF-8 -
方便在 dependency 中引用3.2.0
依赖管理:dependencies 和 scope
dependencies 是最常修改的部分,每项 至少含 groupId、artifactId;version 可省略(若由父 POM 或 dependencyManagement 统一管理)。
-
scope决定依赖生效范围:compile(默认,全阶段可用)、test(仅测试编译/运行时)、provided(如 servlet-api,打包时不包含,容器已提供) - 用
主动排除冲突的传递依赖,比如排除 log4j 而保留 slf4j - Spring Boot 项目通常继承
spring-boot-starter-parent,它已预设好常用依赖版本,减少手动指定
构建与扩展:build 和 plugin 配置
build 块控制编译、打包、插件行为。常见操作包括:
- 设置
或自定义源码/资源路径 - 用
maven-compiler-plugin显式指定source和target版本(即使 properties 里写了,也建议再确认) - Spring Boot 项目加
spring-boot-maven-plugin才能生成可执行 jar - 跳过测试可配
,但上线前务必关掉true
基本上就这些。pom.xml 不复杂,但细节多、容错低——一个拼写错误或标签闭合遗漏就会导致构建失败。建议从官方脚手架(如 start.spring.io)生成基础 pom 开始,再逐步按需调整。









