Spring Boot 3迁移:Spring Cloud Contract WireMock版本兼容咨询
Spring Boot 3 迁移中 Spring Cloud Contract WireMock 适配方案
核心适配原则
Spring Boot 3 对应 Spring Cloud 2022.0.x(代号 Kilburn),该版本的 spring-cloud-contract-wiremock 已适配 WireMock 新 groupId(org.wiremock),无需手动混用旧的 com.github.tomakehurst 依赖。
是否移除 spring-cloud-contract-wiremock?
- 若仅用 WireMock 做接口 Mock,不需要 Spring Cloud Contract 的契约测试能力,可直接移除
spring-cloud-contract-wiremock,直接引入org.wiremock:wiremock-standalone或org.wiremock:wiremock-core(WireMock 3.x 已不再区分 jre8 版本)。 - 若依赖 Spring Cloud Contract 的契约生成、Stub 发布等能力,必须保留
spring-cloud-contract-wiremock,但要确保版本与 Spring Cloud 版本匹配。
推荐版本组合
保留 Spring Cloud Contract WireMock 的场景
使用 Spring Cloud 2022.0.x 版本,对应 spring-cloud-contract-wiremock 稳定版为 4.0.4,它会自动引入兼容的 WireMock 3.x 版本,无需手动指定,避免版本冲突:
<!-- Spring Cloud 2022.0.x 依赖管理 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>2022.0.4</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <!-- 仅需引入此依赖,WireMock 会自动关联 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-contract-wiremock</artifactId> <scope>test</scope> </dependency>
仅使用 WireMock 的场景
直接引入 WireMock 3.x 稳定版配合 Spring Boot 3:
<dependency> <groupId>org.wiremock</groupId> <artifactId>wiremock-standalone</artifactId> <version>3.8.0</version> <scope>test</scope> </dependency>
日志无法获取的解决
- 调整日志配置,将 WireMock 相关日志级别设为
INFO或DEBUG,例如在application-test.yml中:
logging: level: org.wiremock: INFO com.github.tomakehurst: INFO # 若存在旧依赖残留需配置
- 用
mvn dependency:tree或gradle dependencies检查依赖树,排查是否有 slf4j、logback 等日志组件的冲突或被排除情况。
升级 spring-cloud-contract-wiremock 4.* 遇问题的排查方向
- 依赖冲突:检查是否有旧的
com.github.tomakehurst:wiremock-*依赖被间接引入,通过排除规则清理:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-contract-wiremock</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>com.github.tomakehurst</groupId> <artifactId>wiremock-jre8-standalone</artifactId> </exclusion> </exclusions> </dependency>
- API 适配:WireMock 3.x 对比 2.x 有较多 API 变更,比如 Stub 定义方式、配置类结构,需检查测试代码是否适配新 API。
- 版本兼容性:确保所有相关依赖都适配 Spring Boot 3,Spring Cloud 版本必须为 2022.0.x 及以上,禁止混用旧版 Spring Cloud。
内容的提问来源于stack exchange,提问作者Phalguna Aramalla
相关产品推荐
相关产品推荐

