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

SpringBoot Jenkins运行测试报DevToolsLogFactory NoSuchMethodException异常

问题根因
  • Spring Boot版本严重不兼容:项目核心Spring Boot依赖版本为1.2.4.RELEASE,但是单独指定了spring-boot-devtools的版本为2.5.5,跨大版本的组件类结构完全不匹配。2.x版本的DevToolsLogFactory$Listener类没有无参构造方法,而1.2.x版本的Spring Boot加载监听器时强制要求无参构造,就抛出了NoSuchMethodException异常。
  • 环境执行逻辑差异:Eclipse本地运行测试时,默认会自动排除runtime scope的devtools依赖,不会触发devtools的加载逻辑;而Jenkins执行Maven测试时会完整加载所有runtime scope的依赖,就会触发不兼容问题。
  • 次要问题:测试类使用了已废弃的@SpringApplicationConfiguration注解,且maven-surefire-plugin版本过旧(2.4.2为2008年的历史版本),也可能放大环境差异导致的执行异常。
修复方案

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

方案1(成本最低,优先选择):测试/构建阶段排除devtools依赖

devtools仅用于本地开发热部署,测试和线上环境不需要引入,修改pom.xml中devtools的依赖配置:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <version>2.5.5</version>
    <scope>runtime</scope>
    <optional>true</optional> <!-- 新增这行,只有本地开发会加载,打包和测试阶段不会引入 -->
</dependency>

如果配置后仍未生效,可同步升级maven-surefire-plugin并配置强制排除devtools:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.2</version> <!-- 升级为适配Spring Boot 1.x的稳定版本 -->
    <configuration>
        <classpathDependencyExcludes>
            <classpathDependencyExclude>org.springframework.boot:spring-boot-devtools</classpathDependencyExclude>
        </classpathDependencyExcludes>
    </configuration>
</plugin>

方案2(彻底解决兼容问题):统一Spring Boot版本

要么将spring-boot-devtools的版本降级到和核心依赖一致的1.2.4.RELEASE,要么将整个项目的Spring Boot版本统一升级到2.5.5,同步更新测试类的废弃注解:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = WebApplication.class) // 替换旧的@SpringApplicationConfiguration注解
@WebAppConfiguration
public class BanksMvcControllerTest {
    @Test
    public void contextLoads() {
    }
}

临时验证方案

如果需要Jenkins测试快速跑通,可直接执行Maven命令时添加参数关闭devtools:
mvn test -Dspring.devtools.restart.enabled=false -Dspring.devtools.livereload.enabled=false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:39:01