但凡Java Maven项目根目录必有且仅有一份pom.xml文件名固定不可修改。很多开发入行多年只会CV复制依赖、复制插件配置不懂pom底层运行逻辑Spring Boot、Spring Cloud所有启动、打包、依赖报错90%根源全部来自pom.xml。联动上一篇Spring启动命令mvn spring-boot:run -Dspring-boot.run.profilesdev这条命令能成功启动Spring项目前置条件就是合规、完整的pom.xml。本文以工程实战视角全景拆解pom运行原理、层级标签、依赖仲裁、构建生命周期、版本冲突治理全文配套多张结构化表格通俗易懂底层原理双向兼顾。一、pom.xml是什么核心作用通俗解读1.1 官方定义pom全称Project Object Model项目对象模型是Maven制定的标准化XML配置文件是整个Java项目的唯一工程说明书。Maven不识别Java代码只识别pom.xml所有编译、打包、运行、依赖下载、部署行为全部由pom驱动。1.2 五大核心职能全网通俗版身份登记定义项目唯一坐标区分项目名称、版本、归属实现私服依赖引用依赖管理一键引入Spring、Mybatis、Redis等第三方Jar自动下载告别手动导包工程构建控制代码编译、资源拷贝、打包、清理、启动流程适配mvn命令环境配置统一JDK版本、编码、启动参数、多环境隔离dev/test/prod插件拓展集成Spring打包、代码检查、镜像构建、测试插件赋能微服务部署。关键结论没有pom.xmlMaven项目无法编译、无法启动pom不属于Spring文件是Java底层构建规范Spring Boot只是适配Maven规则封装Starter和插件。二、pom三层继承架构父pom→聚合pom→子pom绝大部分中大型后端项目并非单一pom而是三层继承架构版本混乱、依赖不一致全部是继承机制不懂导致三层架构对照表如下Pom类型打包方式packaging核心用途业务场景父级Parent Pompom统一管理依赖版本、全局属性锁定Spring版本杜绝版本错乱Spring Cloud Alibaba父工程聚合Root Pompom聚合多个子模块一键批量编译、打包实现模块化拆分多模块微服务、多业务拆分项目业务子Pomjar/war编写业务依赖、业务插件编写接口代码实际业务服务、Web接口工程底层继承规则子pom优先继承父pom配置子pom自定义配置覆盖父pom实现全局统一、局部差异化治理Spring全家桶版本锁定全部依托该机制。三、pom核心标签全景拆解生产必备pom标签分为基础必填标签、依赖标签、构建标签、环境标签四大类剔除网上冗余无效标签整理生产高频标签对照表每一项对应实际作用标签分类核心标签底层作用报错后果基础必填标签groupId组织坐标公司反向域名全局唯一私服上传失败依赖无法引用artifactId项目名称同一组织下唯一本地打包冲突项目启动异常version项目版本快照/S正式版本区分版本覆盖、依赖拉取失败packaging打包方式jar/war/pom打包报错无法生成可执行包依赖管控标签dependencies声明当前项目生效第三方依赖缺失Jar代码爆红类找不到dependencyManagement仅锁定版本不实际引入Jar父工程专用全局版本混乱Spring版本冲突exclusions排除冲突传递依赖切断依赖传递Jar包冲突、启动报错、循环依赖构建插件标签build管控编译规则、资源文件、打包插件yml配置打包丢失、中文乱码plugins绑定Maven插件Spring打包、编译、镜像构建mvn命令失效无法启动Spring项目环境标签profiles区分dev/test/prod环境联动Spring Profile多环境配置混乱连接错误数据库3.1 极易混淆dependencies vs dependencyManagement这是面试生产最高频考点90%开发者分不清直白对比dependencies直接引入Jar包子模块全部生效会增大项目依赖体积dependencyManagement只锁版本不引入依赖父工程统一定义版本子工程无需写version统一管控Spring全家桶版本杜绝版本撕裂。四、Maven依赖传递依赖仲裁机制硬核原理引入Spring Boot Starter后无需手动引入日志、aop、web依赖根源就是Maven依赖传递机制版本冲突、Jar包重复全部来自依赖仲裁规则。4.1 依赖生效范围scope对照表Scope范围生效阶段打包是否保留适用场景compile默认编译运行测试保留Spring Web、Mybatis核心依赖test仅单元测试剔除Junit单元测试包provided编译生效运行失效剔除服务器自带tomcat、servlet依赖runtime运行测试保留数据库驱动jdbc4.2 版本冲突仲裁优先级从上到下递减当前项目直接声明依赖优先级最高依赖传递路径最短优先路径一致先声明优先父工程dependencyManagement强制锁定覆盖以上所有规则。Spring全家桶版本兼容本质就是利用父pom强制仲裁强行统一所有组件版本避免仲裁错乱。五、Maven构建生命周期pom驱动执行全过程执行mvn spring-boot:run、mvn clean package底层全部执行Maven三套内置生命周期pom插件绑定生命周期节点触发自动执行。5.1 三大生命周期执行顺序不可颠倒生命周期执行阶段高频命令Pom绑定动作Clean生命周期清理阶段mvn clean删除target打包目录清除旧字节码Default生命周期编译打包阶段mvn compile、package编译Java、拷贝yml、依赖校验、生成JarSite生命周期文档发布阶段mvn site生成项目文档业务开发极少使用5.2 联动Spring启动命令原理执行命令mvn spring-boot:run -Dspring-boot.run.profilesdev底层pom执行链路加载pom→读取spring-boot-maven-plugin插件→绑定default生命周期compile节点→编译代码→读取profiles环境参数→启动Spring上下文缺少pom插件配置该命令直接报错。六、Spring Boot专属pom特殊配置解析6.1 Spring必备pom配置作用拆解Spring项目和普通Java项目pom唯一区别父工程打包插件两个配置缺一不可Spring专属配置核心作用缺失后果spring-boot-starter-parent全局锁定Spring、第三方依赖版本统一仲裁版本内置编码、JDK默认配置版本爆炸、依赖冲突、启动失败spring-boot-maven-plugin打包可执行Jar、内嵌Tomcat、支持mvn启动命令、环境参数传递无法run启动、打包后无法运行、profiles参数失效6.2 Starter机制本质所有Spring xxx-starter本质就是预封装好的pom依赖集合引入一个starter 自动引入一批适配版本依赖简化pom编写底层依然遵守Maven依赖传递规则。七、生产高频pom报错溯源解决方案汇总线上、开发环境最高频pom异常全部贴合实际排查场景异常现象底层Pom根源修复方案代码爆红找不到类依赖缺失、scope范围错误、私服拉取失败修正scope刷新maven配置私服地址Spring启动Jar冲突报错依赖传递引入重复版本仲裁错乱exclusions排除冗余依赖父工程锁版本mvn spring-boot:run命令失效缺失Spring打包插件、pom打包格式错误补全spring-boot-maven-plugin插件打包后yml配置丢失pom-build资源过滤未放行配置文件新增resources资源拷贝配置Boot3启动profiles参数不生效旧版pom插件不兼容Boot3升级maven插件废弃spring.profiles.active写法八、全文总结pom底层本质剥离繁杂XML标签pom.xml本质只有三句话pom是Maven和Java代码的沟通协议没有协议工具无法构建项目pom是依赖账本管控所有第三方Jar版本、传递规则治理版本冲突pom是Spring运行前置底座所有Spring启动、自动装配、环境隔离、打包部署全部依托pom规则执行。想要吃透Spring全家桶第一步必须吃透Maven与pom机制很多高级Bug不是Spring问题而是开发者不懂pom构建、依赖仲裁底层原理导致。九、完整pom.xml参考文件?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion !-- -- !-- 1. 项目基本信息 -- !-- -- groupIdcom.example/groupId artifactIdmy-springboot-project/artifactId version1.0.0-SNAPSHOT/version packagingjar/packaging nameMy Spring Boot Project/name descriptionSpring Boot 企业级应用示例/description !-- -- !-- 2. Spring Boot 父依赖版本管理 -- !-- -- parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version3.2.4/version relativePath/ !-- lookup parent from repository -- /parent !-- -- !-- 3. 版本属性统一管理 -- !-- -- properties java.version17/java.version maven.compiler.source17/maven.compiler.source maven.compiler.target17/maven.compiler.target project.build.sourceEncodingUTF-8/project.build.sourceEncoding !-- 依赖版本 -- mybatis-plus.version3.5.5/mybatis-plus.version mysql.version8.0.33/mysql.version lombok.version1.18.30/lombok.version hutool.version5.8.26/hutool.version jjwt.version0.12.3/jjwt.version springdoc.version2.3.0/springdoc.version /properties !-- -- !-- 4. 项目依赖 -- !-- -- dependencies !-- Spring Boot 核心依赖 -- !-- Spring Boot Web 启动器包含 Tomcat、Spring MVC -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- Spring Boot 测试 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency !-- 数据校验Hibernate Validator -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-validation/artifactId /dependency !-- 数据库相关 -- !-- MySQL 驱动 -- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version${mysql.version}/version scoperuntime/scope /dependency !-- MyBatis-Plus简化 MyBatis 开发 -- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version${mybatis-plus.version}/version /dependency !-- Druid 连接池可选Spring Boot 默认使用 HikariCP -- dependency groupIdcom.alibaba/groupId artifactIddruid-spring-boot-3-starter/artifactId version1.2.20/version /dependency !-- 工具类 -- !-- Lombok简化 Java Bean 代码 -- dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId version${lombok.version}/version scopeprovided/scope /dependency !-- HutoolJava 工具类库 -- dependency groupIdcn.hutool/groupId artifactIdhutool-all/artifactId version${hutool.version}/version /dependency !-- JSON 处理 -- dependency groupIdcom.alibaba/groupId artifactIdfastjson/artifactId version2.0.48/version /dependency !-- 安全与认证 -- !-- JWTJJWT -- dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-api/artifactId version${jjwt.version}/version /dependency dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-impl/artifactId version${jjwt.version}/version scoperuntime/scope /dependency dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-jackson/artifactId version${jjwt.version}/version scoperuntime/scope /dependency !-- Spring Security可选 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-security/artifactId /dependency !-- API 文档 -- !-- SpringDoc OpenAPI 3Swagger 3 -- dependency groupIdorg.springdoc/groupId artifactIdspringdoc-openapi-starter-webmvc-ui/artifactId version${springdoc.version}/version /dependency !-- 开发工具 -- !-- Spring Boot DevTools热部署 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-devtools/artifactId scoperuntime/scope optionaltrue/optional /dependency !-- 可选扩展 -- !-- Redis 支持 -- !-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-redis/artifactId /dependency -- !-- 邮件支持 -- !-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-mail/artifactId /dependency -- !-- 定时任务 -- !-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-quartz/artifactId /dependency -- /dependencies !-- -- !-- 5. 构建配置 -- !-- -- build finalName${project.artifactId}/finalName plugins !-- Spring Boot Maven 插件 -- plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId configuration excludes exclude groupIdorg.projectlombok/groupId artifactIdlombok/artifactId /exclude /excludes /configuration /plugin !-- 编译插件 -- plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId configuration source${java.version}/source target${java.version}/target encodingUTF-8/encoding /configuration /plugin !-- 资源插件支持多环境配置 -- plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-resources-plugin/artifactId configuration encodingUTF-8/encoding /configuration /plugin /plugins !-- 多环境配置文件可选 -- !-- resources resource directorysrc/main/resources/directory filteringtrue/filtering includes includeapplication.yml/include includeapplication-${profileActive}.yml/include /includes /resource /resources -- /build !-- -- !-- 6. 多环境构建可选 -- !-- -- profiles profile iddev/id properties profileActivedev/profileActive /properties activation activeByDefaulttrue/activeByDefault /activation /profile profile idtest/id properties profileActivetest/profileActive /properties /profile profile idprod/id properties profileActiveprod/profileActive /properties /profile /profiles /project十、依赖速查表依赖用途版本变量spring-boot-starter-webWeb 应用基础Spring MVC Tomcat由 parent 管理mysql-connector-javaMySQL 数据库驱动${mysql.version}mybatis-plus-boot-starterMyBatis-PlusMyBatis 增强${mybatis-plus.version}lombok自动生成 Getter/Setter/构造器${lombok.version}hutool-allJava 工具类库${hutool.version}jjwtJWT 生成和验证${jjwt.version}springdoc-openapiSwagger 3 API 文档${springdoc.version}spring-boot-starter-test单元测试和集成测试由 parent 管理spring-boot-starter-validation参数校验Valid由 parent 管理spring-boot-devtools热部署自动重启由 parent 管理十一、pom 使用说明11.1、如何修改项目信息修改项位置项目组IDgroupId项目名称artifactId项目版本versionJDK 版本java.version11.2、如何添加新依赖在dependencies标签内添加依赖xmldependency groupIdcom.example/groupId artifactIdexample-lib/artifactId version1.0.0/version /dependency11.3 如何切换环境bash# 开发环境 mvn clean package -Pdev # 测试环境 mvn clean package -Ptest # 生产环境 mvn clean package -Pprod3.4 常用构建命令命令说明mvn clean清理 target 目录mvn compile编译源代码mvn test执行测试mvn package打包成 jar/warmvn install安装到本地仓库mvn clean package清理并打包mvn spring-boot:run运行 Spring Boot 应用
Java:pom.xml全景深度分析 / 机制、标签、依赖、打包、生产避坑全解 / 工程基石
发布时间:2026/7/16 5:20:51
但凡Java Maven项目根目录必有且仅有一份pom.xml文件名固定不可修改。很多开发入行多年只会CV复制依赖、复制插件配置不懂pom底层运行逻辑Spring Boot、Spring Cloud所有启动、打包、依赖报错90%根源全部来自pom.xml。联动上一篇Spring启动命令mvn spring-boot:run -Dspring-boot.run.profilesdev这条命令能成功启动Spring项目前置条件就是合规、完整的pom.xml。本文以工程实战视角全景拆解pom运行原理、层级标签、依赖仲裁、构建生命周期、版本冲突治理全文配套多张结构化表格通俗易懂底层原理双向兼顾。一、pom.xml是什么核心作用通俗解读1.1 官方定义pom全称Project Object Model项目对象模型是Maven制定的标准化XML配置文件是整个Java项目的唯一工程说明书。Maven不识别Java代码只识别pom.xml所有编译、打包、运行、依赖下载、部署行为全部由pom驱动。1.2 五大核心职能全网通俗版身份登记定义项目唯一坐标区分项目名称、版本、归属实现私服依赖引用依赖管理一键引入Spring、Mybatis、Redis等第三方Jar自动下载告别手动导包工程构建控制代码编译、资源拷贝、打包、清理、启动流程适配mvn命令环境配置统一JDK版本、编码、启动参数、多环境隔离dev/test/prod插件拓展集成Spring打包、代码检查、镜像构建、测试插件赋能微服务部署。关键结论没有pom.xmlMaven项目无法编译、无法启动pom不属于Spring文件是Java底层构建规范Spring Boot只是适配Maven规则封装Starter和插件。二、pom三层继承架构父pom→聚合pom→子pom绝大部分中大型后端项目并非单一pom而是三层继承架构版本混乱、依赖不一致全部是继承机制不懂导致三层架构对照表如下Pom类型打包方式packaging核心用途业务场景父级Parent Pompom统一管理依赖版本、全局属性锁定Spring版本杜绝版本错乱Spring Cloud Alibaba父工程聚合Root Pompom聚合多个子模块一键批量编译、打包实现模块化拆分多模块微服务、多业务拆分项目业务子Pomjar/war编写业务依赖、业务插件编写接口代码实际业务服务、Web接口工程底层继承规则子pom优先继承父pom配置子pom自定义配置覆盖父pom实现全局统一、局部差异化治理Spring全家桶版本锁定全部依托该机制。三、pom核心标签全景拆解生产必备pom标签分为基础必填标签、依赖标签、构建标签、环境标签四大类剔除网上冗余无效标签整理生产高频标签对照表每一项对应实际作用标签分类核心标签底层作用报错后果基础必填标签groupId组织坐标公司反向域名全局唯一私服上传失败依赖无法引用artifactId项目名称同一组织下唯一本地打包冲突项目启动异常version项目版本快照/S正式版本区分版本覆盖、依赖拉取失败packaging打包方式jar/war/pom打包报错无法生成可执行包依赖管控标签dependencies声明当前项目生效第三方依赖缺失Jar代码爆红类找不到dependencyManagement仅锁定版本不实际引入Jar父工程专用全局版本混乱Spring版本冲突exclusions排除冲突传递依赖切断依赖传递Jar包冲突、启动报错、循环依赖构建插件标签build管控编译规则、资源文件、打包插件yml配置打包丢失、中文乱码plugins绑定Maven插件Spring打包、编译、镜像构建mvn命令失效无法启动Spring项目环境标签profiles区分dev/test/prod环境联动Spring Profile多环境配置混乱连接错误数据库3.1 极易混淆dependencies vs dependencyManagement这是面试生产最高频考点90%开发者分不清直白对比dependencies直接引入Jar包子模块全部生效会增大项目依赖体积dependencyManagement只锁版本不引入依赖父工程统一定义版本子工程无需写version统一管控Spring全家桶版本杜绝版本撕裂。四、Maven依赖传递依赖仲裁机制硬核原理引入Spring Boot Starter后无需手动引入日志、aop、web依赖根源就是Maven依赖传递机制版本冲突、Jar包重复全部来自依赖仲裁规则。4.1 依赖生效范围scope对照表Scope范围生效阶段打包是否保留适用场景compile默认编译运行测试保留Spring Web、Mybatis核心依赖test仅单元测试剔除Junit单元测试包provided编译生效运行失效剔除服务器自带tomcat、servlet依赖runtime运行测试保留数据库驱动jdbc4.2 版本冲突仲裁优先级从上到下递减当前项目直接声明依赖优先级最高依赖传递路径最短优先路径一致先声明优先父工程dependencyManagement强制锁定覆盖以上所有规则。Spring全家桶版本兼容本质就是利用父pom强制仲裁强行统一所有组件版本避免仲裁错乱。五、Maven构建生命周期pom驱动执行全过程执行mvn spring-boot:run、mvn clean package底层全部执行Maven三套内置生命周期pom插件绑定生命周期节点触发自动执行。5.1 三大生命周期执行顺序不可颠倒生命周期执行阶段高频命令Pom绑定动作Clean生命周期清理阶段mvn clean删除target打包目录清除旧字节码Default生命周期编译打包阶段mvn compile、package编译Java、拷贝yml、依赖校验、生成JarSite生命周期文档发布阶段mvn site生成项目文档业务开发极少使用5.2 联动Spring启动命令原理执行命令mvn spring-boot:run -Dspring-boot.run.profilesdev底层pom执行链路加载pom→读取spring-boot-maven-plugin插件→绑定default生命周期compile节点→编译代码→读取profiles环境参数→启动Spring上下文缺少pom插件配置该命令直接报错。六、Spring Boot专属pom特殊配置解析6.1 Spring必备pom配置作用拆解Spring项目和普通Java项目pom唯一区别父工程打包插件两个配置缺一不可Spring专属配置核心作用缺失后果spring-boot-starter-parent全局锁定Spring、第三方依赖版本统一仲裁版本内置编码、JDK默认配置版本爆炸、依赖冲突、启动失败spring-boot-maven-plugin打包可执行Jar、内嵌Tomcat、支持mvn启动命令、环境参数传递无法run启动、打包后无法运行、profiles参数失效6.2 Starter机制本质所有Spring xxx-starter本质就是预封装好的pom依赖集合引入一个starter 自动引入一批适配版本依赖简化pom编写底层依然遵守Maven依赖传递规则。七、生产高频pom报错溯源解决方案汇总线上、开发环境最高频pom异常全部贴合实际排查场景异常现象底层Pom根源修复方案代码爆红找不到类依赖缺失、scope范围错误、私服拉取失败修正scope刷新maven配置私服地址Spring启动Jar冲突报错依赖传递引入重复版本仲裁错乱exclusions排除冗余依赖父工程锁版本mvn spring-boot:run命令失效缺失Spring打包插件、pom打包格式错误补全spring-boot-maven-plugin插件打包后yml配置丢失pom-build资源过滤未放行配置文件新增resources资源拷贝配置Boot3启动profiles参数不生效旧版pom插件不兼容Boot3升级maven插件废弃spring.profiles.active写法八、全文总结pom底层本质剥离繁杂XML标签pom.xml本质只有三句话pom是Maven和Java代码的沟通协议没有协议工具无法构建项目pom是依赖账本管控所有第三方Jar版本、传递规则治理版本冲突pom是Spring运行前置底座所有Spring启动、自动装配、环境隔离、打包部署全部依托pom规则执行。想要吃透Spring全家桶第一步必须吃透Maven与pom机制很多高级Bug不是Spring问题而是开发者不懂pom构建、依赖仲裁底层原理导致。九、完整pom.xml参考文件?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion !-- -- !-- 1. 项目基本信息 -- !-- -- groupIdcom.example/groupId artifactIdmy-springboot-project/artifactId version1.0.0-SNAPSHOT/version packagingjar/packaging nameMy Spring Boot Project/name descriptionSpring Boot 企业级应用示例/description !-- -- !-- 2. Spring Boot 父依赖版本管理 -- !-- -- parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version3.2.4/version relativePath/ !-- lookup parent from repository -- /parent !-- -- !-- 3. 版本属性统一管理 -- !-- -- properties java.version17/java.version maven.compiler.source17/maven.compiler.source maven.compiler.target17/maven.compiler.target project.build.sourceEncodingUTF-8/project.build.sourceEncoding !-- 依赖版本 -- mybatis-plus.version3.5.5/mybatis-plus.version mysql.version8.0.33/mysql.version lombok.version1.18.30/lombok.version hutool.version5.8.26/hutool.version jjwt.version0.12.3/jjwt.version springdoc.version2.3.0/springdoc.version /properties !-- -- !-- 4. 项目依赖 -- !-- -- dependencies !-- Spring Boot 核心依赖 -- !-- Spring Boot Web 启动器包含 Tomcat、Spring MVC -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- Spring Boot 测试 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency !-- 数据校验Hibernate Validator -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-validation/artifactId /dependency !-- 数据库相关 -- !-- MySQL 驱动 -- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version${mysql.version}/version scoperuntime/scope /dependency !-- MyBatis-Plus简化 MyBatis 开发 -- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version${mybatis-plus.version}/version /dependency !-- Druid 连接池可选Spring Boot 默认使用 HikariCP -- dependency groupIdcom.alibaba/groupId artifactIddruid-spring-boot-3-starter/artifactId version1.2.20/version /dependency !-- 工具类 -- !-- Lombok简化 Java Bean 代码 -- dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId version${lombok.version}/version scopeprovided/scope /dependency !-- HutoolJava 工具类库 -- dependency groupIdcn.hutool/groupId artifactIdhutool-all/artifactId version${hutool.version}/version /dependency !-- JSON 处理 -- dependency groupIdcom.alibaba/groupId artifactIdfastjson/artifactId version2.0.48/version /dependency !-- 安全与认证 -- !-- JWTJJWT -- dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-api/artifactId version${jjwt.version}/version /dependency dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-impl/artifactId version${jjwt.version}/version scoperuntime/scope /dependency dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-jackson/artifactId version${jjwt.version}/version scoperuntime/scope /dependency !-- Spring Security可选 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-security/artifactId /dependency !-- API 文档 -- !-- SpringDoc OpenAPI 3Swagger 3 -- dependency groupIdorg.springdoc/groupId artifactIdspringdoc-openapi-starter-webmvc-ui/artifactId version${springdoc.version}/version /dependency !-- 开发工具 -- !-- Spring Boot DevTools热部署 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-devtools/artifactId scoperuntime/scope optionaltrue/optional /dependency !-- 可选扩展 -- !-- Redis 支持 -- !-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-redis/artifactId /dependency -- !-- 邮件支持 -- !-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-mail/artifactId /dependency -- !-- 定时任务 -- !-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-quartz/artifactId /dependency -- /dependencies !-- -- !-- 5. 构建配置 -- !-- -- build finalName${project.artifactId}/finalName plugins !-- Spring Boot Maven 插件 -- plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId configuration excludes exclude groupIdorg.projectlombok/groupId artifactIdlombok/artifactId /exclude /excludes /configuration /plugin !-- 编译插件 -- plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId configuration source${java.version}/source target${java.version}/target encodingUTF-8/encoding /configuration /plugin !-- 资源插件支持多环境配置 -- plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-resources-plugin/artifactId configuration encodingUTF-8/encoding /configuration /plugin /plugins !-- 多环境配置文件可选 -- !-- resources resource directorysrc/main/resources/directory filteringtrue/filtering includes includeapplication.yml/include includeapplication-${profileActive}.yml/include /includes /resource /resources -- /build !-- -- !-- 6. 多环境构建可选 -- !-- -- profiles profile iddev/id properties profileActivedev/profileActive /properties activation activeByDefaulttrue/activeByDefault /activation /profile profile idtest/id properties profileActivetest/profileActive /properties /profile profile idprod/id properties profileActiveprod/profileActive /properties /profile /profiles /project十、依赖速查表依赖用途版本变量spring-boot-starter-webWeb 应用基础Spring MVC Tomcat由 parent 管理mysql-connector-javaMySQL 数据库驱动${mysql.version}mybatis-plus-boot-starterMyBatis-PlusMyBatis 增强${mybatis-plus.version}lombok自动生成 Getter/Setter/构造器${lombok.version}hutool-allJava 工具类库${hutool.version}jjwtJWT 生成和验证${jjwt.version}springdoc-openapiSwagger 3 API 文档${springdoc.version}spring-boot-starter-test单元测试和集成测试由 parent 管理spring-boot-starter-validation参数校验Valid由 parent 管理spring-boot-devtools热部署自动重启由 parent 管理十一、pom 使用说明11.1、如何修改项目信息修改项位置项目组IDgroupId项目名称artifactId项目版本versionJDK 版本java.version11.2、如何添加新依赖在dependencies标签内添加依赖xmldependency groupIdcom.example/groupId artifactIdexample-lib/artifactId version1.0.0/version /dependency11.3 如何切换环境bash# 开发环境 mvn clean package -Pdev # 测试环境 mvn clean package -Ptest # 生产环境 mvn clean package -Pprod3.4 常用构建命令命令说明mvn clean清理 target 目录mvn compile编译源代码mvn test执行测试mvn package打包成 jar/warmvn install安装到本地仓库mvn clean package清理并打包mvn spring-boot:run运行 Spring Boot 应用