Spring Boot 1..5.7项目执行bootRun任务启动报错求助
解决Spring Boot 1.5.7 bootRun启动时无法实例化EventPublishingRunListener的问题
嘿,我之前也踩过这个坑!你遇到的这个错误本质是类加载异常,大概率是依赖冲突或者配置不一致导致的,给你几个靠谱的解决方向:
先把依赖版本统一好
Spring Boot 1.5.7对依赖版本有严格的兼容性要求,尤其是Spring核心组件的版本。你得确保所有Spring Boot相关的依赖都是1.5.7.RELEASE版本,别混进其他版本的组件。
在你的build.gradle里,一定要用Spring Boot的Gradle插件来管理版本,比如这样配置:
buildscript { ext { springBootVersion = '1.5.7.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'org.springframework.boot' dependencies { compile('org.springframework.boot:spring-boot-starter-web') // 其他starter依赖不用写版本,插件会自动帮你对齐到1.5.7 }
如果有第三方依赖引入了不同版本的Spring组件,一定要排查出来。
清理缓存,重新构建
有时候Gradle的缓存会搞事情,比如依赖文件损坏或者缓存了冲突的版本。执行这两条命令清一下:
./gradlew clean ./gradlew build --refresh-dependencies
然后再跑bootRun试试,很多时候这个操作就能解决问题。
排查Spring Core版本冲突
Spring Boot 1.5.7对应的Spring Core版本是4.3.x,如果你不小心引入了Spring 5.x的依赖,肯定会出这个错。你可以用Gradle命令看依赖树:
./gradlew dependencies
找到所有spring-core相关的依赖,要是发现有高版本的,就把它排除掉,比如:
compile('某个第三方依赖') { exclude group: 'org.springframework', module: 'spring-core' }
检查IDEA的配置
有时候IDEA的运行配置会抽风,没有正确使用Gradle的类路径。你可以试试:
- 删掉现有的bootRun运行配置,从Gradle面板里找到bootRun任务右键重新运行
- 执行
File -> Invalidate Caches / Restart,重启IDEA清理缓存
确认JDK版本
Spring Boot 1.5.7只支持JDK 1.6到1.8,别用JDK9及以上的版本,不然也会有类加载的问题。
内容的提问来源于stack exchange,提问作者Nigus
相关产品推荐
相关产品推荐

