如何解决SpringBoot中org.junit.jupiter.api等包不存在及类找不到问题
解决Spring Boot运行主类时测试依赖包找不到的问题
问题现象
运行DemoApplication主类时触发以下报错:
package org.junit.jupiter.api does not existpackage org.springframework.boot.test.context does not existcannot find symbol class SpringBootTestcannot find symbol class Test
已在pom.xml中引入spring-boot-starter-test依赖并指定<scope>test</scope>,Spring Boot版本为2.7.11(3.0.6版本也出现相同问题),开发工具为IntelliJ IDEA。
pom.xml完整内容:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.11</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example.sbpractice</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
解决步骤
1. 检查测试类目录位置
- 确认带
@SpringBootTest、@Test注解的测试类,是否误放在src/main/java主源码目录下。 <scope>test</scope>限定测试依赖仅对src/test/java目录下的代码生效,主目录代码无法访问这些依赖。- 修复:将测试类移动到
src/test/java对应的包路径下。
2. 强制刷新Maven依赖
- 在IDEA右侧Maven面板,点击「Reload All Maven Projects」刷新图标;
- 或在项目根目录执行命令:
mvn clean install -U-U参数强制Maven更新快照依赖,确保本地仓库依赖完整。
3. 校验IDEA的Maven配置
- 打开
File > Settings > Build, Execution, Deployment > Build Tools > Maven:- 确认「Maven home directory」指向正确的本地Maven安装路径(不建议使用IDEA内置Maven,易出现缓存问题);
- 检查「Local repository」路径,确认该路径下
org/springframework/boot/spring-boot-starter-test、org/junit/jupiter相关依赖存在。若缺失,手动删除对应目录后重新执行mvn install。
4. 清理IDEA缓存
- 执行
File > Invalidate Caches...,选择「Invalidate and Restart」,重启后重新编译项目。
5. 检查依赖Scope配置
- 确认
spring-boot-starter-test的<scope>test</scope>未被误修改。不建议去掉该scope(会导致生产包包含测试依赖),除非主类确实需要测试依赖(非常规场景)。
内容的提问来源于stack exchange,提问作者Frank G
相关产品推荐
相关产品推荐

