一、前言
Maven 是 Java 项目主流构建工具,解决传统项目 jar 包管理混乱、项目结构不统一、编译打包部署繁琐等痛点。本文完整梳理 Maven 核心知识点,包含基础概念、IDEA 实操、依赖管理、生命周期、JUnit5 单元测试、常见问题解决方案,适合 Java 后端开发者入门学习。
二、Maven 核心三大作用
三、Maven 仓库体系
仓库分类(依赖查找顺序)
查找规则:本地仓库 → 私服 → 中央仓库
四、Maven 坐标(GAV)
坐标是 jar 包唯一标识,用于定位依赖,在pom.xml中定义
<groupId>组织/公司域名</groupId>
<artifactId>项目/模块名称</artifactId>
<version>版本号</version>
- SNAPSHOT:快照版本,开发中持续更新;
- RELEASE:正式稳定版本,可以对外发布。
五、IDEA Maven 项目操作
1. 创建 Maven 模块
New Module → 选择 Maven → 设置 GAV 坐标,完成创建。
2. 导入已有 Maven 项目
两种方式:
六、依赖管理详解
1. 引入依赖
在dependencies标签内添加 dependency,填写 GAV 坐标:
<dependency>
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
<version>xxx</version>
<exclusions>
<exclusion>
<groupId>冲突包groupId</groupId>
<artifactId>冲突包artifactId</artifactId>
</exclusion>
</exclusions>
</dependency>
2. 排除依赖(解决 jar 冲突)
当依赖传递引入不需要的包,使用exclusions排除:
<dependencies>
<dependency>
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
<version>xxx</version>
</dependency>
</dependencies>
3. 依赖范围 scope
通过<scope>控制依赖生效范围:
| compile(默认) | ✅ | ✅ | ✅ |
| test | ❌ | ✅ | ❌ |
| provided | ✅ | ✅ | ❌ |
| runtime | ❌ | ✅ | ✅ |
示例:JUnit 测试依赖一般设置<scope>test</scope>
七、Maven 生命周期
Maven 内置三套独立生命周期:
- pre-clean → clean → post-clean
- validate → compile → test → package → install → deploy
执行后续阶段,会自动执行前面所有阶段;例如执行package,会自动执行 compile、test
常用命令: mvn clean、mvn compile、mvn test、mvn package、mvn install
八、JUnit5 单元测试实战
1. 引入依赖
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.9.1</version>
<scope>test</scope>
</dependency>
2. 基础注解
| @Test | 标识普通测试方法 |
| @ParameterizedTest | 参数化测试 |
| @ValueSource | 为参数化测试提供数据 |
| @DisplayName | 修改测试类 / 方法展示名称 |
| @BeforeEach | 每个测试方法执行前运行 |
| @AfterEach | 每个测试方法执行后运行 |
| @BeforeAll | 所有测试方法运行前执行(static) |
| @AfterAll | 所有测试方法运行结束执行(static) |
3. Assertions 断言(核心)
单元测试不能只看不报异常,必须使用断言校验结果。 常用断言方法:
Assertions.assertEquals(预期值,实际值,"错误提示");
Assertions.assertNull(obj);
Assertions.assertNotNull(obj);
Assertions.assertTrue(条件);
Assertions.assertThrows(异常类,() -> {}); // 断言抛出指定异常
4. 企业开发规范
- 测试代码统一放在src/test/java,不要写在 main 目录;
- 测试类命名规范:业务类名+Test;
- 测试方法必须public void;
- 覆盖正常场景、边界值、异常场景。
九、Maven 常见问题解决方案
问题:依赖下载失败,报 lastUpdated 错误
原因:网络异常中断下载,本地生成.lastUpdated锁文件,不会自动重试。 解决步骤:
💡小技巧:删除文件后依然异常,重启 IDEA。
网硕互联帮助中心

评论前必须登录!
注册