如何解决Gradle构建项目时一直卡在Starting_修改gradle-wrapper配置

冬雪吖_8764

冬雪吖_8764

2026-03-20

334人浏览

原创

gradle卡在“starting daemon”本质是本地守护进程启动失败,主因包括jvm参数冲突、gradle.properties错误配置、ide占用锁文件或临时目录权限异常;应先执行gradle --stop并清理daemon目录锁文件,再通过--no-daemon验证,最后调整gradle.properties中的org.gradle.jvmargs参数。

如何解决gradle构建项目时一直卡在starting_修改gradle-wrapper配置

Gradle卡在“Starting Daemon”到底卡在哪

根本不是网络或下载问题,而是本地 Gradle 守护进程(Daemon)启动失败或被阻塞。常见现象是命令行停在 Starting Daemon... 一行不动,持续几十秒甚至几分钟,gradle --version 也卡住——说明连最基础的 Daemon 初始化都失败了。

典型诱因:JVM 参数冲突、gradle.properties 里错误配置、IDE(如 IntelliJ)后台占用了端口或锁文件、或系统临时目录权限异常。

  • 先试 gradle --stop 强制终止所有守护进程,再运行 gradle tasks --no-daemon 看是否能绕过 Daemon 正常执行——如果可以,基本锁定是 Daemon 自身问题
  • 检查 ~/.gradle/daemon/(Linux/macOS)或 %USERPROFILE%\.gradle\daemon\(Windows)下是否有残留的锁文件(如 registry.bin.lock),手动删掉(确保没 gradle 进程在跑)
  • 临时禁用 Daemon:在项目根目录加 gradle.properties,写入 org.gradle.daemon=false,验证是否真由 Daemon 导致

修改 gradle-wrapper 配置的正确姿势

改 gradle/wrapper/gradle-wrapper.properties 只解决“下载哪版 Gradle”,不解决“启动卡住”。但很多人误以为升级 wrapper 就能破局——其实如果当前版本本身没问题,盲目升级反而引入兼容性风险(比如旧项目用 Groovy DSL,新 Gradle 版本已默认要求 Kotlin DSL)。

真正该改的,是这个文件里的 distributionUrl 和 JVM 相关参数。

  • 确认 URL 协议用 https 而非 http(否则某些企业网络会拦截重定向导致卡住)
  • URL 中的 Gradle 版本号必须与项目 build.gradle 兼容;查官方 兼容矩阵,比如 Android Gradle Plugin 8.2 要求 Gradle 8.2+,但不能用 8.4(尚未正式支持)
  • 不要手动改 gradle-wrapper.jar 文件——它由 gradlew 脚本自动调用,改了也没用;重点是 gradle-wrapper.properties 和 JVM 启动参数

真正起效的 JVM 参数调整位置

卡在 Starting Daemon,90% 是 JVM 启动时内存或 GC 参数不合理,尤其在低配机器或 Docker 环境中。这些参数**不能**写在 gradle-wrapper.properties,而必须放在 gradle.properties(用户级或项目级)。

gradle-wrapper.properties 只管下载;gradle.properties 才控制 JVM 行为。

  • 在项目根目录新建或编辑 gradle.properties,添加:
    org.gradle.jvmargs=-Xmx512m -XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError
  • 避免设过高内存(如 -Xmx4g):Docker 容器或 CI 环境可能没这么多堆可用,反而触发 GC 卡死
  • Windows 上若用 PowerShell 运行 ./gradlew,注意 gradle.properties 中的反斜杠路径要写成正斜杠或双反斜杠,否则 JVM 参数解析失败静默忽略

IDE 和命令行混用导致的隐藏冲突

IntelliJ 或 Android Studio 默认启用 “Use Gradle from wrapper” 并开启 “Run build using Gradle daemon”,但 IDE 启动的 Daemon 实例和终端里手动跑的 ./gradlew 共享同一套配置和锁文件——一旦 IDE 崩溃未清理 Daemon,终端就永远卡在 Starting。

  • 关闭 IDE,杀光 java 进程(pkill -f "GradleDaemon" 或任务管理器结束 java.exe),再清空 ~/.gradle/daemon/
  • 在 IDE 的 Settings > Build > Build Tools > Gradle 中,把 Gradle JVM 改为项目指定 JDK(而非默认 bundled JDK),避免 JVM 版本错乱
  • CI 环境(如 GitHub Actions)务必加 cache: gradle 并显式设置 GRADLE_USER_HOME,否则每次都是全新 Daemon 初始化,极易超时

最麻烦的其实是多模块项目里某个子模块的 build.gradle 里写了自定义 JavaExec 任务,又没设 fork = true,结果把整个 Daemon 进程卡死——这种得逐个模块排查 JavaExec 和 Exec 任务。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java Maven专题
Java Maven专题

本专题聚焦 Java 主流构建工具 Maven 的学习与应用,系统讲解项目结构、依赖管理、插件使用、生命周期与多模块项目配置。通过企业管理系统、Web 应用与微服务项目实战,帮助学员全面掌握 Maven 在 Java 项目构建与团队协作中的核心技能。

2025.09.15

3860

19

Java Maven/Gradle 构建与依赖管理合集
Java Maven/Gradle 构建与依赖管理合集

系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi

2026.05.09

369

25

Java Maven/Gradle 构建与依赖管理合集
Java Maven/Gradle 构建与依赖管理合集

系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi

2026.05.09

369

25

Playwright 测试失败怎么办
Playwright 测试失败怎么办

Playwright测试失败专题汇集超时、定位器匹配、浏览器提前关闭、依赖与插件配置、文件上传、SSL及Docker启动等故障文章,并介绍通过截图、报告和Trace定位错误。

2026.10.21

20

15

Playwright 页面操作指南
Playwright 页面操作指南

Playwright页面操作专题汇集元素定位、点击与输入、等待响应、多页面切换、Iframe、事件监听及文件处理的已审核文章,便于按操作场景查阅示例与常见问题。

2026.10.21

0

16

Playwright 入门教程
Playwright 入门教程

Playwright入门专题汇集测试框架安装、VS Code配置、录制脚本、编写首个用例、运行调试及查看报告的已审核文章,帮助初学者搭建端到端测试流程。

2026.10.21

0

16

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

120

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

80

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

60

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.9万人学习