DAO测试用例执行失败求助:找不到RuntimeConfig类
解决
de.flapdoodle.embed.process.config.RuntimeConfig类找不到问题 问题根源
你遇到的ClassNotFoundException是由于flapdoodle组件版本不兼容导致的:
- 当前使用的
de.flapdoodle.embed.mongo-2.2.0和de.flapdoodle.embed.process-2.1.2版本不匹配,2.2.0版本的embed mongo依赖的process组件版本并非2.1.2,导致运行时找不到对应类。 - Spring Boot 2.7.x对第三方库有严格的版本适配要求,手动指定不一致的版本容易引发依赖冲突。
解决方案
1. 统一flapdoodle组件版本
确保de.flapdoodle.embed.mongo和de.flapdoodle.embed.process使用完全一致的版本,比如都升级到2.2.0:
- Maven依赖配置:
<dependency> <groupId>de.flapdoodle.embed</groupId> <artifactId>de.flapdoodle.embed.mongo</artifactId> <version>2.2.0</version> <scope>test</scope> </dependency> <dependency> <groupId>de.flapdoodle.embed</groupId> <artifactId>de.flapdoodle.embed.process</artifactId> <version>2.2.0</version> <scope>test</scope> </dependency>
- Gradle依赖配置:
testImplementation 'de.flapdoodle.embed:de.flapdoodle.embed.mongo:2.2.0' testImplementation 'de.flapdoodle.embed:de.flapdoodle.embed.process:2.2.0'
2. 优先使用Spring Boot的依赖管理(推荐)
Spring Boot 2.7.3的依赖BOM已经内置了适配的flapdoodle版本(3.3.1),无需手动指定版本,直接引入依赖即可自动匹配兼容的组件版本:
- Maven依赖配置:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>de.flapdoodle.embed</groupId> <artifactId>de.flapdoodle.embed.mongo</artifactId> <scope>test</scope> </dependency>
- Gradle依赖配置:
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' testImplementation 'de.flapdoodle.embed:de.flapdoodle.embed.mongo'
3. 排查并排除冲突依赖
如果仍存在问题,检查是否有其他依赖引入了不同版本的flapdoodle组件:
- Maven查看依赖树:
mvn dependency:tree | grep flapdoodle
- Gradle查看依赖树:
./gradlew dependencies | grep flapdoodle
找到冲突的依赖后,通过exclusions标签排除旧版本:
<!-- Maven示例:排除冲突的process组件 --> <dependency> <groupId>你的冲突依赖groupId</groupId> <artifactId>你的冲突依赖artifactId</artifactId> <exclusions> <exclusion> <groupId>de.flapdoodle.embed</groupId> <artifactId>de.flapdoodle.embed.process</artifactId> </exclusion> </exclusions> </dependency>
内容的提问来源于stack exchange,提问作者Rohit Shete
相关产品推荐
相关产品推荐

