Maven的pom.xml文件配置详解

10次阅读

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

Maven的pom.xml文件配置详解

pom.xml 是 Maven 项目的“心脏”,它用 XML 描述项目的一切:你是谁、依赖什么、怎么打包、用什么 java 版本、测试怎么跑……没它,Maven 就不知道从哪下手。

核心坐标:项目唯一身份标识

每个 Maven 项目必须有 groupIdartifactIdversion,三者合起来叫“坐标”,就像身份证号一样不可重复。

  • groupId:通常用公司/组织域名倒写,比如 com.exampleorg.springframework.boot
  • artifactId:项目名,小写短横线风格更常见,比如 user-servicecommon-utils
  • version:语义化版本,如 1.2.02.0.0-SNAPSHOT(带 SNAPSHOT 表示开发中)
  • packaging:默认 jar,Web 项目常用 war,父模块用 pom

基础配置块:modelVersion 和 properties

modelVersion 是固定值 4.0.0,代表当前 POM 遵循的规范版本,不能改。

properties 块用来定义可复用的变量,避免硬编码

  • 17 控制编译和运行的 JDK 版本
  • UTF-8 统一源码编码
  • 3.2.0 方便在 dependency 中引用

依赖管理:dependencies 和 scope

dependencies 是最常修改的部分,每项 至少含 groupIdartifactIdversion 可省略(若由父 POM 或 dependencyManagement 统一管理)。

  • scope 决定依赖生效范围:compile(默认,全阶段可用)、test(仅测试编译/运行时)、provided(如 servlet-api,打包时不包含,容器已提供)
  • 主动排除冲突的传递依赖,比如排除 log4j 而保留 slf4j
  • spring boot 项目通常继承 spring-boot-starter-parent,它已预设好常用依赖版本,减少手动指定

构建与扩展:build 和 plugin 配置

build 块控制编译、打包、插件行为。常见操作包括:

  • 设置 自定义源码/资源路径
  • maven-compiler-plugin 显式指定 sourcetarget 版本(即使 properties 里写了,也建议再确认)
  • Spring Boot 项目加 spring-boot-maven-plugin 才能生成可执行 jar
  • 跳过测试可配 true,但上线前务必关掉

基本上就这些。pom.xml 不复杂,但细节多、容错低——一个拼写错误或标签闭合遗漏就会导致构建失败。建议从官方脚手架(如 start.spring.io)生成基础 pom 开始,再逐步按需调整。

text=ZqhQzanResources