IDEA使用Gradle构建SpringBoot项目执行bootRun报非零退出值1错误
报错原因排查与解决方案
你当前提供的堆栈仅为Gradle执行层的报错,仅能说明SpringBoot应用对应的Java进程启动后返回了非0退出码,没有包含应用本身的启动异常信息,需先定位根因再处理:
前置操作:获取应用真实报错
首先调整配置输出完整的应用启动日志,定位具体异常:
- 在
build.gradle中添加bootRun的日志输出配置,将应用日志打印到控制台:
bootRun { standardOutput = System.out errorOutput = System.err }
- 执行带详细日志的启动命令:
./gradlew bootRun --info --stacktrace
根据输出的应用启动异常,对应以下常见场景处理:
常见触发原因与解决方案
结合你使用的组件版本(Gradle 6.9 + JDK 11 + SpringBoot 2.4.7 + SpringCloud 2020.0.3),最高频的问题如下:
1. 依赖版本冲突
- 触发场景:手动引入的第三方依赖版本和SpringBoot/SpringCloud托管的依赖版本不匹配
- 解决方案:
- 优先使用Spring Boot依赖管理和Spring Cloud依赖管理控制依赖版本,无需手动给符合托管规则的依赖指定版本号
- 执行
./gradlew dependencies导出依赖树,排查同一Jar包存在多版本的冲突场景,排除多余版本即可
2. JDK版本不匹配
- 触发场景:Gradle运行使用的JDK版本和项目编译目标版本不一致
- 解决方案:
- 检查IDEA配置路径
Settings > Build,Execution,Deployment > Build Tools > Gradle中的Gradle JVM参数,确认选择为JDK 11 - 确认
build.gradle中存在正确的Java版本配置:
java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } - 检查IDEA配置路径
3. 配置文件异常
- 触发场景:application.yml/application.properties格式错误、配置项值非法、缺少必填配置(如配置中心地址、数据库连接信息等)
- 解决方案:检查配置文件的格式正确性,以及所有必填配置项是否都已正确赋值,无拼写错误
4. 端口占用
- 触发场景:应用配置的启动端口被其他进程占用
- 解决方案:执行
lsof -i:配置的启动端口查看占用进程,关闭对应进程或者修改server.port配置为其他未被占用的端口即可
5. Gradle缓存/编译产物损坏
- 触发场景:本地Gradle缓存或者编译产物异常
- 解决方案:依次执行以下命令清理缓存、刷新依赖重新构建:
./gradlew clean ./gradlew build --refresh-dependencies ./gradlew bootRun
内容的提问来源于stack exchange,提问作者Yingjie Guan
相关产品推荐
相关产品推荐

