以下是我们 fork 一个新的守护进程的所有情况:
- 如果该守护进程当前正忙于运行一些作业,将启动一个全新的守护进程。
- 对每个 java home,我们会 fork 一个单独的守护进程。所以即使有一些闲置的守护进程等待构建请求,但你碰巧通过不同的 java HOME 运行构建,那么一个全新的守护进程将会被 fork。
- 如果用于构建的jvm的参数足够不同,我们会 fork 一个单独的守护进程。例如,如果某些系统属性已经更改,我们不会 fork 一个新的守护进程。然而,如果 -Xmx 内存设置更改了,或一些基本的不变的系统属性更改了 (例如 file.encoding),那么将 fork 新的守护进程。
- 在这一刻,守护进程会被加上 Gradle 的特定版本号。这意味着即使一些守护进程处于空闲状态,但您正在运行的构建与 Gradle 不同版本,也将启动一个新的守护进程。这也有一种 --stop 命令行指令的结果: 当运行 --stop 时,您仅可以停止以你的 Gradle 版本启动的守护进程。
我们计划在将来改进守护进程的 managing / pooling 的方法。
用法和故障排除
关于命令行的用法,可以看一下专题附录 D, Gradle 命令行。如果你已经厌倦反复使用相同的命令行选项,可以看看构建环境。这一章节包含了有关如何以一种“持久化”的方式配置某些行为(包括在默认情况下打开守护进程)的信息。
以下是有关 Gradle 守护进程的故障排除的一些方面:
- 如果你的构建有问题,请尝试暂时禁用守护进程 (您可以通过使用命令行开关--no-daemon)。
- 有时候,您可能想要通过--stop命令行选项或更有力的方式停止守护程序。
- 默认情况下位于 Gradle 用户主目录有一个守护进程的日志文件。
- 你可能想要以--foreground 模式启动守护程序,以观察构建是怎么执行的。
配置守护进程
可以配置一些守护进程的设置,例如 JVM 参数、内存设置或 Java home 目录。有关更多信息请参阅构建环境。
标签:Gradle
相关阅读 >>
更多相关阅读请进入《Gradle》频道 >>