Spring项目运行报错:org.junit.jupiter.api与Spring Boot Test相关包不存在
解决Spring项目测试依赖缺失问题
遇到的错误
java: package org.junit.jupiter.api does not exist
java: package org.springframework.boot.test.context does not exist
问题分析
从提供的pom.xml文件来看,存在两个核心问题:
- 重复依赖:
spring-boot-starter-test被重复添加,会导致Maven依赖解析逻辑混乱 - 版本冲突:手动指定的
junit-jupiter-api(5.7.0)与Spring Boot 3.1.2父项目管理的JUnit版本不兼容,Spring Boot 3.x默认依赖JUnit Jupiter 5.9+,手动指定旧版本会引发依赖冲突
解决方案
1. 修正pom.xml依赖
删除重复的spring-boot-starter-test条目,同时移除手动添加的junit-jupiter-api依赖(spring-boot-starter-test已包含完整的JUnit 5和Spring测试套件,无需单独引入)。修正后的核心依赖部分如下:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>me.paulschwarz</groupId> <artifactId>spring-dotenv</artifactId> <version>3.0.0</version> </dependency> </dependencies>
2. 清理Maven缓存并重新构建
在项目根目录执行以下命令,强制更新依赖并清理本地缓存:
mvn clean install -U
3. IDE缓存清理与重新导入
- 重新导入Maven项目(IDEA/Eclipse中点击Maven面板的刷新按钮)
- 清理IDE缓存:以IDEA为例,执行
File -> Invalidate Caches...,选择"Invalidate and Restart"
4. 环境校验
确认Mac本地环境:
- Java版本为17(与pom.xml中
java.version配置一致) - Maven版本为3.8.1及以上(Spring Boot 3.x要求的最低Maven版本)
内容的提问来源于stack exchange,提问作者Catalin Coman
相关产品推荐
相关产品推荐

