杀死所有 Gradle 个守护进程,无论版本如何?

Kill all Gradle Daemons Regardless Version?

总结

我想知道如何杀死机器上的每一个 gradle 守护进程和进程 运行,而不管 gradle 的版本或守护进程的版本,但是“--kill”或“--stop”命令只会停止那些匹配相同版本 gradle 的进程。

用例

我的 CI 构建框将有几个 gradle 守护进程 运行 不同的版本(因为我是一个使用包装器执行构建的好孩子)。偶尔我会发现缓存或增量构建的问题,作为预防措施,我喜欢杀死守护进程。我的开发箱也是如此,尽管冲突更常见于我使用的任何 VCS 或 IDE。

我在找什么

  1. 我希望有一面旗帜,或者 属性 我想念我可以 传递给 gradle 以在一个简单的一行命令中执行此操作,但如果它是 足够简单,我会接受更多。
  2. 没有脚本(循环, if-else 等)。
  3. 杀死所有 java 进程是可接受的。

指向 gradle 文档的有用链接

Disabling the Daemon

Stopping an existing Daemon

在 linux 下你可以使用 pkill:

pkill -f '.*GradleDaemon.*'

在windows下你可以使用wmic:

WMIC PROCESS where "Name like 'java%' AND CommandLine like '%GradleDaemon%'" Call Terminate

PS。为什么 "no scripting" 可能是最简单的解决方案?

gradle --status 命令将显示每个守护进程的进程 ID。然后,您可以使用 OS 终止这些进程。

我假设这是跨平台功能,但这是 Windows:

上的输出
  PID STATUS   INFO
10276 IDLE     5.4.1
14068 IDLE     5.4.1

这比对系统上的每个 java.exe 进程 运行 打地鼠游戏要好一点。虽然如果 gradle 有一个可以终止所有 运行 gradle 内置守护进程的命令会很好。

gradle 守护进程在 3 小时后没有消失;这可能是因为我 运行 作为 VirtualBox 中的 Linux 访客。

因此,以下删除了所有 gradle 守护程序,但它可能是 "frowned upon",因为它可能过多...

(1) ./gradlew --stop 以确保停止所有守护进程

(2)删除项目中.gradle文件夹中的所有folders/files

(3) 删除 /home/username/ 中的 .gradle 文件夹 丽奴 (4) 重启

所有守护进程都消失了。下一次构建需要更长的时间,但值得,因为不喜欢每次 gradle 构建甚至开始清理时都看到 6 个停止的守护进程。

我有类似的问题,我做了这个:

  1. 转到 C:\Users\"用户名"\.gradle\daemon
  2. gradle
  3. 的每个版本都有一个文件夹
  4. 删除您实际 运行 版本的文件夹 检查 --status