【Maven】pom.xml 超全面详解(核心结构+所有常用依赖)

简介: 本文详解Maven核心配置文件pom.xml的七大结构(坐标、属性、依赖、构建等),并分类梳理Web、数据库、工具、测试、日志、JSON等场景下最常用依赖的功能与用法,助开发者高效管理项目依赖与构建流程。

前言

Maven——pom.xml 核心结构与常用依赖详解

一、概念

pom.xml(Project Object Model)是Maven项目的核心配置文件,通过XML结构描述项目的依赖、构建、继承等信息。

以下是核心组成部分:

1. 项目基本坐标

modelVersion:POM模型版本,固定为4.0.0(Maven 2/3通用)。
groupId:组织标识(如com.example),对应项目包结构。
artifactId:项目标识(如demo),对应项目名称。
version:版本号(如1.0.0-SNAPSHOT),SNAPSHOT表示开发版。
packaging:打包方式(jar/war/pom等,默认jar)。
name/description:项目名称和描述(可选)。

2. 属性配置(properties)

● 定义全局变量(如依赖版本号),通过${xxx}引用,方便统一管理。
● 示例:17

3. 依赖声明(dependencies)

● 核心部分,声明项目所需依赖,包含:
groupId/artifactId/version:依赖坐标。
scope:依赖作用域(compile/test/provided/runtime/system)。
exclusions:排除传递性依赖(解决冲突)。

4. 依赖管理(dependencyManagement)

● 统一管理依赖版本(不实际引入),子项目可继承,避免版本冲突。
● 常用于父POM,定义版本后,子POM声明依赖时无需写version。

5. 构建配置(build)

plugins:配置构建插件(如maven-compiler-plugin、spring-boot-maven-plugin)。
resources:指定资源文件目录(如src/main/resources)。
finalName:打包后的文件名(可选)。

6. 继承与聚合

parent:指定父POM(继承依赖、插件配置),如Spring Boot项目继承spring-boot-starter-parent。
modules:多模块项目中声明子模块(聚合构建)。

7. 仓库配置(repositories/pluginRepositories)

● 指定依赖/插件的下载仓库(如Maven中央仓库、阿里云镜像)。


二、常用依赖及功能

以下按场景分类,整理Maven项目中最常用的依赖及其功能:

1. Web开发

spring-boot-starter-web(org.springframework.boot)
○ 功能:Spring Boot Web开发核心依赖,包含Spring MVC、Tomcat容器、Jackson JSON处理等。
spring-boot-starter-webflux(org.springframework.boot)
○ 功能:响应式Web开发依赖,基于Netty,支持非阻塞I/O。

2. 数据库与持久层

mysql-connector-j(com.mysql)
○ 功能:MySQL JDBC驱动,用于连接MySQL数据库。
mybatis-spring-boot-starter(org.mybatis.spring.boot)
○ 功能:MyBatis整合Spring Boot,简化SQL映射、数据库操作。
spring-boot-starter-data-jpa(org.springframework.boot)
○ 功能:Spring Data JPA支持,基于Hibernate,简化ORM操作。
druid-spring-boot-starter(com.alibaba)
○ 功能:阿里巴巴Druid数据库连接池,提供监控、SQL优化等功能。

3. 工具类库

lombok(org.projectlombok)
○ 功能:通过注解(如@Data、@Slf4j、@Builder)简化Java代码,消除样板代码。
hutool-all(cn.hutool)
○ 功能:国产Java工具库,涵盖字符串、集合、日期、加密等通用功能。
guava(com.google.guava)
○ 功能:Google工具库,提供增强集合、缓存、并发工具等。
commons-lang3(org.apache.commons)
○ 功能:Apache Commons Lang,补充JDK字符串、数字、对象等工具类。

4. 测试框架

spring-boot-starter-test(org.springframework.boot
○ 功能:Spring Boot测试依赖,包含JUnit 5、Mockito、AssertJ等测试工具。
junit-jupiter(org.junit.jupiter)
○ 功能:JUnit 5测试框架核心,用于编写单元测试。
mockito-core(org.mockito)
○ 功能:Mock框架,用于模拟依赖对象,隔离测试。

5. 日志框架

slf4j-api(org.slf4j)
○ 功能:日志门面,统一日志接口,配合Logback/Log4j2使用。
logback-classic(ch.qos.logback)
○ 功能:Logback日志实现(Spring Boot默认),性能优于Log4j。
log4j2-spring-boot-starter(org.springframework.boot)
○ 功能:Log4j2日志实现,支持异步日志,适合高并发场景。

6. JSON处理

jackson-databind(com.fasterxml.jackson.core)
○ 功能:Jackson JSON库(Spring Boot默认),用于JSON序列化/反序列化。
gson(com.google.code.gson)
○ 功能:Google Gson库,简洁的JSON处理工具。

7. 其他常用

spring-boot-starter-aop(org.springframework.boot)
○ 功能:Spring AOP支持,用于面向切面编程(如日志、事务)。
spring-boot-starter-cache(org.springframework.boot)
○ 功能:Spring Cache抽象,支持Redis、Caffeine等缓存实现。
validation-api(javax.validation)+ hibernate-validator(org.hibernate.validator)
○ 功能:参数校验,如@NotNull、@Size等注解。

相关文章
|
Java Maven
maven篇4:pom文件详解
maven篇4:pom文件详解
1014 3
|
固态存储 安全 Java
Maven settings.xml 最全配置详解:从入门到精通
本文深入讲解了 Maven settings.xml 的完整配置项,包含本地仓库路径、镜像源配置、代理设置、认证信息、Profile 多环境切换等核心内容。通过 10 个实战案例展示了企业级配置最佳实践,提供可直接使用的配置文件模板。掌握这些技能,你将能够轻松应对团队标准化、私服集成、多环境部署等场景。适合 Java 开发者、DevOps 工程师阅读。
2458 0
|
3月前
|
JavaScript Java 数据库
一个基于Spring Boot + Vue的诊所管理系统全栈开发指南
本项目介绍诊所管理系统(门诊系统)的全栈开发方案:采用Spring Boot + Vue.js技术栈,结合MySQL/Redis数据库、RESTful API与HL7/FHIR等医疗标准接口,支持预约挂号、电子病历、处方管理、药房库存、医保对接及多维统计。强调SaaS部署、微服务架构与数据安全合规。
364 0
|
存储 Java 测试技术
JAVA-MAVEN初学者教程(配置、pom.xml、依赖管理等)
JAVA-MAVEN初学者教程(配置、pom.xml、依赖管理等)
3790 0
|
3月前
|
SQL 缓存 Java
【MyBatis】MyBatis框架知识(全体系总结)
MyBatis 是一款轻量级持久层框架,支持SQL与代码分离、动态SQL、灵活映射及一二级缓存。本文系统讲解其核心组件、配置文件、Mapper映射、CRUD、缓存机制、插件扩展(如PageHelper、MyBatis-Plus)及最佳实践,助你高效掌握ORM开发。
1208 3
|
3月前
|
存储 IDE Java
【Maven】如何创建/导入Maven项目?手把手教学(包括下载/安装/创建/配置)
Maven是Java项目管理与构建工具,核心功能包括:依赖管理(自动下载jar包、解决版本冲突)、标准化构建(编译、测试、打包、部署)和统一项目结构(跨IDE兼容)。通过pom.xml配置,结合中央仓库与阿里云镜像,大幅提升开发效率。
1097 2
|
3月前
|
运维 监控 Java
SpringBoot 实现QPS监控:别等系统“咳血”了才想起装“心电图”!
想象一下你的系统就像一个忙碌的外卖小哥,QPS就是他每秒能送多少份外卖!如果小哥每秒只能送1单,那估计顾客早就饿晕在厕所了;要是每秒能送100单,那他绝对是"闪电侠"附体!
227 4
|
1月前
|
IDE Java 开发工具
【2026最新】Eclipse下载安装使用保姆级教程(附安装包+图文步骤)
Eclipse是免费开源的跨平台IDE,原生支持Java开发,通过插件可扩展至C/C++、Python、Web前端等。其轻量插件架构、丰富生态及二十多年企业级应用积累,使其成为Java开发的重要工具之一。(239字)
|
Java Maven
关于The POM for xxxxxx:jar:s missing, no dependency information avail 问题的解决
关于The POM for xxxxxx:jar:s missing, no dependency information avail 问题的解决
1394 1

热门文章

最新文章