Maven的pom.xml文件配置详解

发布时间 - 2026-01-26 00:00:00    点击率:
pom.xml 是 Maven 项目的配置核心,定义坐标(groupId、artifactId、version)、基础配置(modelVersion、properties)、依赖管理(dependencies、scope)、构建插件(build、plugins)等,缺一不可。

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

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

每个 Maven 项目必须有 groupIdartifactId

version,三者合起来叫“坐标”,就像身份证号一样不可重复。

  • 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 开始,再逐步按需调整。


# java  # 编码 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 实例解析angularjs的filter过滤器  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  JavaScript常见的五种数组去重的方式  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  动图在线制作网站有哪些,滑动动图图集怎么做?  如何在建站之星网店版论坛获取技术支持?  如何在七牛云存储上搭建网站并设置自定义域名?  如何实现javascript表单验证_正则表达式有哪些实用技巧  PHP正则匹配日期和时间(时间戳转换)的实例代码  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  zabbix利用python脚本发送报警邮件的方法  如何在VPS电脑上快速搭建网站?  JS弹性运动实现方法分析  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  如何快速搭建自助建站会员专属系统?  清除minerd进程的简单方法  北京的网站制作公司有哪些,哪个视频网站最好?  如何用y主机助手快速搭建网站?  Swift中switch语句区间和元组模式匹配  如何在IIS管理器中快速创建并配置网站?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Laravel怎么判断请求类型_Laravel Request isMethod用法  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Laravel观察者模式如何使用_Laravel Model Observer配置  详解Android图表 MPAndroidChart折线图  如何获取PHP WAP自助建站系统源码?  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Laravel如何使用Telescope进行调试?(安装和使用教程)  如何用虚拟主机快速搭建网站?详细步骤解析  Java解压缩zip - 解压缩多个文件或文件夹实例  javascript基本数据类型及类型检测常用方法小结  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  微信小程序 scroll-view组件实现列表页实例代码  Laravel如何实现API版本控制_Laravel版本化API设计方案  在线制作视频网站免费,都有哪些好的动漫网站?  如何在服务器上配置二级域名建站?