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

升级spring-webmvc至6.1.13后编译测试报类找不到错误求助

问题分析与解决方案

核心原因

你遇到的NoClassDefFoundError本质是Spring Boot父依赖版本与单独升级的spring-webmvc版本不兼容:

  • Spring Boot 3.1.x系列依赖的是Spring Framework 6.0.x版本,而spring-webmvc 6.1.13属于Spring Framework 6.1.x分支,后者是Spring Boot 3.2.x的配套依赖。跨分支升级单个模块会导致依赖生态断裂,HandlerMethodValidationException的类路径或定义变化就是典型表现。

具体解决方案

1. 优先对齐Spring Boot父依赖版本(推荐)

不要单独升级spring-webmvc,而是将Spring Boot父依赖升级到3.2.x系列(比如3.2.7,刚好对应spring-webmvc 6.1.13),这样整个Spring生态的依赖会自动对齐,避免版本冲突:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.7</version>
    <relativePath/>
</parent>

升级后无需手动指定spring-webmvc版本,Spring Boot会自动管理。

2. 若无法升级Spring Boot,调整Groovy与插件版本

如果必须保留Spring Boot 3.1.12,需要确保Groovy版本与spring-webmvc 6.1.13兼容:

  • 升级Groovy到4.x版本(Groovy 4.x完全兼容Spring Framework 6.x,而Groovy 3.x对6.1.x的兼容性有限)
  • 确保gmavenplus-plugin版本支持Groovy 4.x,比如使用1.13.1版本:
<plugin>
    <groupId>org.codehaus.gmavenplus</groupId>
    <artifactId>gmavenplus-plugin</artifactId>
    <version>1.13.1</version>
    <executions>
        <!-- 你的执行配置 -->
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>4.0.21</version>
            <type>pom</type>
        </dependency>
    </dependencies>
</plugin>

3. 临时应急方案(不推荐长期使用)

如果上述调整都无法立即实施,可以在测试依赖中显式引入spring-webmvc 6.1.13,确保编译测试阶段能找到缺失的类:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>6.1.13</version>
    <scope>test</scope>
</dependency>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:07:08