最干净的临时关闭Gradle守护进程的方式是执行命令时添加--no-daemon参数,如gradle build --no-daemon或./gradlew test --no-daemon,该参数强制绕过全局配置且仅对当前构建生效。

直接加 --no-daemon 参数就行,不需要改配置、不用删缓存、不重启环境。
执行命令时加 --no-daemon
这是最干净的临时关闭方式,只对当前这一次构建生效:
gradle build --no-daemon-
./gradlew test --no-daemon(推荐用 wrapper,避免本地 Gradle 版本干扰) - 哪怕你全局配置了
org.gradle.daemon=true,这个参数也能强制绕过
为什么不用 --stop 或删 .gradle/daemon
gradle --stop 是终止所有同版本的正在运行的守护进程,但它不阻止下一次构建自动拉起新 daemon;而手动删 .gradle/daemon 目录只是清空缓存,Gradle 下次启动仍会重建它。这两者都不是“临时关闭”,而是“清理状态”,容易误判效果。
哪些场景真得用 --no-daemon
常见于调试或环境受限时:
- 在 CI/CD 流水线里,某些容器环境禁止后台进程(如无权限 fork 子进程),加了就不再报
Could not create service of type FileWatcher类错误 - 调试 JVM 参数冲突:比如你改了
GRADLE_OPTS里的-Xmx,但旧 daemon 还在用老参数,此时加--no-daemon强制走 client-only 模式,能立刻验证新参数是否生效 - 排查构建卡死问题:如果怀疑是 daemon 内部状态异常(比如内存泄漏、文件句柄堆积),临时禁用可快速隔离是否为 daemon 本身导致
注意 daemon 的“自动复活”机制
即使你刚执行过 gradle --stop,只要下一条命令没带 --no-daemon,Gradle 就会立即启动一个新 daemon——它不会记住你“刚刚停过”。所以临时关闭的意图必须显式体现在每次命令里,不能靠“停一次管半天”。











