【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等注解。

相关文章
|
27天前
|
SQL 缓存 Java
【MyBatis】MyBatis框架知识(全体系总结)
MyBatis 是一款轻量级持久层框架,支持SQL与代码分离、动态SQL、灵活映射及一二级缓存。本文系统讲解其核心组件、配置文件、Mapper映射、CRUD、缓存机制、插件扩展(如PageHelper、MyBatis-Plus)及最佳实践,助你高效掌握ORM开发。
|
Java Maven
maven篇4:pom文件详解
maven篇4:pom文件详解
968 3
|
1月前
|
运维 监控 Java
SpringBoot 实现QPS监控:别等系统“咳血”了才想起装“心电图”!
想象一下你的系统就像一个忙碌的外卖小哥,QPS就是他每秒能送多少份外卖!如果小哥每秒只能送1单,那估计顾客早就饿晕在厕所了;要是每秒能送100单,那他绝对是"闪电侠"附体!
143 4
|
28天前
|
JavaScript Java 数据库
一个基于Spring Boot + Vue的诊所管理系统全栈开发指南
本项目介绍诊所管理系统(门诊系统)的全栈开发方案:采用Spring Boot + Vue.js技术栈,结合MySQL/Redis数据库、RESTful API与HL7/FHIR等医疗标准接口,支持预约挂号、电子病历、处方管理、药房库存、医保对接及多维统计。强调SaaS部署、微服务架构与数据安全合规。
147 0
|
SQL 缓存 JSON
vue利用级联选择器实现全国省市区乡村五级菜单联动
vue利用级联选择器实现全国省市区乡村五级菜单联动
|
27天前
|
人工智能 API iOS开发
OpenClaw(Clawdbot)解析:OpenClaw是什么、能做什么?保姆级部署步骤(阿里云+本地)+ 免费多模型API配置+常见问题解答
在AI技术飞速迭代的2026年,“能说会道”的对话式AI已不再新鲜,而能“落地干活”的自动化AI代理成为新的核心需求。OpenClaw(前身为Clawdbot、Moltbot,俗称“龙虾AI”)作为开源本地AI智能体的领军者,凭借“本地优先、强执行能力、多端适配”的核心优势,快速崛起为个人与企业构建专属“数字员工”的首选工具。截至2026年3月,其GitHub星标数已突破24.7万,社区贡献者超300人,技能生态覆盖办公、开发、生活等全场景,真正实现了从“对话建议”到“自动化执行”的跨越,被用户亲切称为“真正干活的AI”,用户群体也自嘲为“养虾人”“甲壳教徒”,项目口号更是直白点出其核心价值—
1665 6
|
27天前
|
人工智能 安全 开发工具
新手入门AI研发框架:5个实操技巧快速上手
作为一名常年泡在研发一线的开发者,从最初的纯手工敲代码,到后来借助各类AI能力辅助编程,总觉得多数AI应用只解决了“代码补全”的单点问题,团队协作中环境配置、多任务并行、代码审查这些效率卡点依然存在。直到接触到AI驱动的全流程研发框架,才发现它真正跳出了“单一AI应用”的局限,把研发全流程的效率卡点逐一打通。这段时间的实操下来,从单人开发到团队协作,踩过坑也摸透了实用技巧,今天就和大家聊聊这类研发框架的实际使用心得,以及几个落地性极强的实战案例。
|
27天前
|
存储 IDE Java
【Maven】如何创建/导入Maven项目?手把手教学(包括下载/安装/创建/配置)
Maven是Java项目管理与构建工具,核心功能包括:依赖管理(自动下载jar包、解决版本冲突)、标准化构建(编译、测试、打包、部署)和统一项目结构(跨IDE兼容)。通过pom.xml配置,结合中央仓库与阿里云镜像,大幅提升开发效率。
|
27天前
|
人工智能 Linux API
2026年OpenClaw(阿里云+Windows/Mac/Linux)保姆级部署步骤+ 免费大模型配置指南
2026年,AI领域的核心变革已从“生成内容”转向“落地执行”——OpenClaw(前身为Clawdbot/Moltbot)作为开源AI自动化代理引擎的领军者,凭借“本地优先、强执行能力、多端适配”的核心优势,成为个人与企业构建“自托管式数字员工”的首选工具。截至2026年3月,其GitHub星标已突破28万,社区贡献者超378人,技能生态覆盖办公、开发、生活等全场景,真正实现了从“对话式建议”到“自动化执行”的跨越。
635 7
|
28天前
|
安全 数据可视化 Linux
Metasploit Pro 5.0.0 发布,带来强大的测试工作流和全新的用户界面
Metasploit Pro 5.0.0 (Linux, Windows) 发布 - 专业渗透测试框架
139 1

热门文章

最新文章