news 2026/5/6 6:21:29

Maven从入门到精通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Maven从入门到精通

Maven 从入门到精通(2025-2026 最新实用版)

Maven 是 Java 生态中最主流的项目构建和管理工具,几乎所有现代 Java 项目(Spring Boot、微服务、大型企业级系统)都离不开它。它帮你解决依赖地狱、统一构建流程、标准化项目结构三大痛点。

本文从零基础到生产级实践,一条线带你吃透 Maven。

1. Maven 到底解决了什么问题?(为什么你要学)

没有 Maven 的时代痛点

  • 手动下载 JAR 包 → 版本冲突 → 依赖传递问题
  • 每个人构建命令不同(ant、gradle、shell 脚本……)
  • 项目结构五花八门,新人接手成本极高
  • 测试、打包、部署流程不统一

Maven 带来的改变(核心价值):

  • 统一标准:目录结构、构建生命周期、依赖坐标
  • 依赖自动管理:中央仓库 + 传递依赖 + 版本统一
  • 插件生态:编译、测试、打包、生成文档、docker 构建……
  • 跨平台:同一套 pom.xml,Windows / Linux / Mac 都能跑

一句话:Maven 让“构建”这件事从艺术变成了工程

2. 快速入门(10 分钟上手)

步骤1:安装 Maven(2025-2026 推荐方式)
  1. 下载:https://maven.apache.org/download.cgi
    推荐最新稳定版(目前 3.9.x 系列)

  2. 环境变量(最重要一步!)

    M2_HOME = D:\apache-maven-3.9.x MAVEN_HOME = %M2_HOME%(部分系统也认这个) Path += %M2_HOME%\bin
  3. 验证

    mvn -version

    看到 Maven 版本 + Java 版本即成功

  4. 推荐镜像(中国大陆必配)
    编辑~/.m2/settings.xml(没有就新建):

    <settings><mirrors><mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>https://maven.aliyun.com/repository/public</url></mirror></mirrors></settings>
步骤2:创建第一个 Maven 项目

命令行方式(最纯正):

mvn archetype:generate -DgroupId=com.example -DartifactId=my-first-maven -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

IDEA / VS Code 方式(推荐):

  • New Project → Maven → 选择 quickstart 骨架

生成后目录结构(记住这套约定):

my-first-maven ├── pom.xml └── src ├── main │ ├── java ← 主代码 │ └── resources ← 配置文件、properties、xml 等 └── test ├── java ← 测试代码 └── resources ← 测试资源
步骤3:核心命令(背下来)
命令含义使用频率
mvn clean删除 target 目录★★★★
mvn compile编译主代码★★
mvn test编译 + 运行单元测试★★★★
mvn package打包(jar/war)★★★★★
mvn install打包 + 安装到本地仓库★★★★
mvn deploy发布到私服★★
mvn clean install -U强制更新依赖 + 安装常用

最常用组合:mvn clean install -U

3. Maven 核心概念(必须吃透)

3.1 POM(Project Object Model) — 项目描述文件
<project><modelVersion>4.0.0</modelVersion><!-- 坐标(全世界唯一标识) --><groupId>com.company</groupId><artifactId>my-app</artifactId><version>1.0.0-SNAPSHOT</version><packaging>jar</packaging><!-- jar / war / pom / maven-plugin --><name>项目名称</name><description>一句话描述</description><!-- 属性统一管理版本 --><properties><java.version>17</java.version><spring-boot.version>3.2.5</spring-boot.version></properties><!-- 依赖管理 --><dependencyManagement>...</dependencyManagement><!-- 实际依赖 --><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${spring-boot.version}</version></dependency></dependencies><build><plugins>...</plugins></build></project>
3.2 坐标(GAV) — 全球唯一定位
  • groupId:公司/组织反写域名
  • artifactId:项目名/模块名
  • version:版本号(推荐语义化:主.次.增量-SNAPSHOT)
3.3 依赖范围(scope) — 超重要!
scope含义编译时测试时运行时打包进最终产物
compile默认,编译+运行都需要
test只用于测试(junit)
provided编译需要,运行时由容器提供(servlet-api)
runtime运行时需要,编译不需要(jdbc 驱动)
system本地 JAR,不推荐
3.4 生命周期(Lifecycle) — 构建的标准化流程

Maven 有三套生命周期(最常用的是 default):

default 生命周期核心阶段(从前往后执行):

  • validate → compile → test → package → verify → install → deploy

常用命令对应阶段:

  • mvn compile → 执行到 compile
  • mvn package → 执行到 package
  • mvn install → 执行到 install
3.5 插件(Plugin) — Maven 的真正执行者

Maven 本身只是调度器,所有能力来自插件。

常用插件(生产必备):

<build><plugins><!-- 编译插件(Java 17+) --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.13.0</version><configuration><source>${java.version}</source><target>${java.version}</target></configuration></plugin><!-- Spring Boot 打包插件 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- 跳过测试 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><skipTests>true</skipTests></configuration></plugin></plugins></build>

4. 多模块项目(企业级必备)

典型结构:

parent-project (pom) ├── pom.xml ├── common-module ├── service-module ├── web-module └── aggregator (可选)

父 pom 最佳实践

  • 使用<dependencyManagement>统一版本
  • 使用<pluginManagement>统一插件配置
  • 子模块只<dependency>不写版本

5. 生产级最佳实践(2025-2026)

  1. 版本管理:统一放在父 pom 的 properties + dependencyManagement
  2. 不要 SNAPSHOT 进私服(除非开发阶段)
  3. 依赖尽量显式声明(避免依赖传递带来的不确定性)
  4. 常用插件组合
    • compiler / surefire / jar / spring-boot / docker / sonar / jacoco
  5. 私服:Nexus / Artifactory / Archiva
  6. 常用属性
    <maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  7. 加速-T 1C并行构建、阿里云镜像、梯度缓存

6. 学习进阶路线建议

阶段目标重点练习
1-2 周入门安装 + 创建项目 + 依赖引入 + 打包运行
2-4 周中级多模块 + 依赖范围 + 生命周期理解 + 常用插件
1-2 月高级自定义插件 + 私服搭建 + 父 pom 治理 + archetype
持续精通依赖冲突分析 + enforcer 插件规范 + CI/CD 集成

有任何具体问题(比如:依赖冲突怎么排、如何写自定义插件、Spring Boot 与 Maven 的最佳配合、如何做分环境配置等),欢迎直接问,我可以带你一步步实战!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 15:19:58

fedora桌面安装virt-manager

在 Fedora 上安装和配置 Virt-Manager(配合 KVM 和 QEMU)是一个非常流畅的过程&#xff0c;因为 Fedora 对虚拟化技术的支持通常是最新的。 以下是完整的安装与配置步骤&#xff1a; 1. 检查硬件虚拟化支持在开始安装之前&#xff0c;首先确认你的 CPU 开启了虚拟化支持(Intel …

作者头像 李华
网站建设 2026/5/1 12:30:01

开题卡住了?10个AI论文工具深度测评,本科生毕业论文写作必备

对于高校师生、研究人员等学术人群而言&#xff0c;写作拖延、文献查找耗时长、AIGC内容检测无门等痛点&#xff0c;直接影响科研进度与成果质量。随着AI技术在学术领域的广泛应用&#xff0c;越来越多的论文写作工具涌现&#xff0c;但如何选择真正适合自己需求的产品成为一大…

作者头像 李华
网站建设 2026/5/3 7:00:07

百考通AI:破解程序员“进阶”与“面试”的双重困境

当你为了弄懂一个晦涩的技术概念而反复查阅资料&#xff0c;为了准备一场关键的技术面试而海量刷题却不得要领&#xff0c;为了在项目中应用新技术却卡在环境配置和底层原理时&#xff0c;你需要的可能不是又一次熬夜苦战&#xff0c;而是一个能精准理解你技术上下文并提供针对…

作者头像 李华
网站建设 2026/5/1 13:17:07

对比一圈后!风靡全网的AI论文工具 —— 千笔·专业论文写作工具

你是否曾为论文选题发愁&#xff1f;是否在深夜面对空白文档无从下笔&#xff1f;是否反复修改却仍不满意表达效果&#xff1f;论文写作的每一步都像一场与时间的赛跑&#xff0c;而你却总被卡在某个关键节点。别再让这些困难拖慢你的节奏&#xff0c;现在&#xff0c;是时候尝…

作者头像 李华
网站建设 2026/5/2 20:02:57

摆脱论文困扰! 降AI率平台 千笔·降AI率助手 VS 文途AI,MBA专属首选

在AI技术迅速发展的今天&#xff0c;越来越多的MBA学生开始借助AI工具辅助论文写作&#xff0c;以提升效率和内容质量。然而&#xff0c;随着学术审查标准的不断提高&#xff0c;AI生成内容的痕迹越来越容易被识别&#xff0c;论文中的“AI率”问题也逐渐成为困扰学生的重大难题…

作者头像 李华
网站建设 2026/5/3 5:56:05

Zen Browser v1.18.4b 丨开源跨平台浏览器

Zen Browser v1.18.4b 是基于 Gecko 内核打造的开源跨平台浏览器&#xff0c;该浏览器主打广告与跟踪器智能拦截&#xff0c;同时兼顾极致流畅的网页浏览体验&#xff0c;本次 v1.18.4b 新版本完成了多项功能问题修复与使用体验优化&#xff0c;为用户打造更高效、更稳定的网页…

作者头像 李华