You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle多模块Spring项目引入spring-boot-starter-webflux报reactor.netty错误

问题根因

核心问题是多模块项目中Spring Boot版本不统一:父项目Par声明使用Spring Boot 2.2.6.RELEASE,子项目Child又单独指定了Spring Boot 2.2.10.RELEASE的webflux依赖,导致最终运行的classpath中混杂了两个版本的Spring Boot核心类与依赖库,出现方法签名不匹配的兼容性问题。
Spring Boot 2.2.6和2.2.10对Reactor Netty的版本要求、内置NettyReactiveWebServerFactory类的实现逻辑存在差异,版本混杂后就会出现调用不存在方法的报错。

解决方案

按优先级从高到低选择即可:

  • 方案一:统一全项目Spring Boot版本(最稳妥)
    将父项目Par中Spring Boot插件的版本升级为2.2.10.RELEASE,删除子项目Child中单独声明的spring_boot版本变量,所有Spring Boot相关依赖统一继承父项目的版本配置,从根源避免版本冲突。
  • 方案二:对齐子项目依赖版本和父项目
    如果暂时无法升级父项目的Spring Boot版本,将子项目中spring-boot-starter-webflux的版本改为和父项目一致的2.2.6.RELEASE,移除子项目单独指定的版本号即可。
  • 方案三:强制子项目依赖版本覆盖父项目仲裁
    如果确实需要在子项目单独使用2.2.10版本的Spring Boot组件,在子项目的build.gradle中添加版本强制规则,覆盖父项目的依赖仲裁:
    configurations.all {
        resolutionStrategy.eachDependency { DependencyResolveDetails details ->
            // 强制所有Spring Boot依赖使用子项目指定的2.2.10版本
            if (details.requested.group == 'org.springframework.boot') {
                details.useVersion versions.spring_boot
            }
            // 强制Reactor全家桶使用适配Spring Boot 2.2.10的版本序列
            if (details.requested.group == 'io.projectreactor') {
                details.useVersion 'Dysprosium-SR13'
            }
        }
    }
    

内容的提问来源于stack exchange,提问作者lightrek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:54:02