Gradle 守护进程(有时也称为构建守护进程) 的目的是改善 Gradle 的启动和执行时间。
我们准备了几个守护进程非常有用的用例。对于一些工作流,用户会多次调用 Gradle,以执行少量的相对快速的任务。举个例子:
对以上各种工作流来说,让调用 Gradle 的启动成本尽可能小会很重要。
此外,如果可以相对较快地建立 Gradle 模型,用户界面可以提供一些有趣的功能。例如,该守护进程可能用于以下情形:
一般情况下,构建工具的敏捷行为总是可以派上用场。如果你尝试在你的本地构建中使用守护进程的话,它会变得让你很难回到正常的 Gradle 使用。
Tooling API 在整个过程当中都使用守护进程。如,你无法在没有守护进程时正式地使用 Tooling API。这意味着当您在 Eclipse 中使用 STS Gradle 或在 Intellij IDEA 中使用 Gradle 支持时,您已经在使用 Gradle 守护进程。
未来,该守护进程还会提供更多的功能:
基本的思想是, gradle 命令会 fork 一个守护进程,用于执行实际的构建。Gradle 命令的后续调用将重用该守护进程,以避免启动开销。有时我们不能使用现有的守护进程,是因为它正忙或其 java 版本或 jvm 参数不同。关于 fork 一个完全新的守护进程的具体细节,请阅读下面的专题。守护进程将在空闲3小时后自动失效。
以下是我们 fork 一个新的守护进程的所有情况:
我们计划在将来改进守护进程的 managing / pooling 的方法。
关于命令行的用法,可以看一下专题附录 D, Gradle 命令行。如果你已经厌倦反复使用相同的命令行选项,可以看看构建环境。这一章节包含了有关如何以一种“持久化”的方式配置某些行为(包括在默认情况下打开守护进程)的信息。
以下是有关 Gradle 守护进程的故障排除的一些方面:
可以配置一些守护进程的设置,例如 JVM 参数、内存设置或 Java home 目录。有关更多信息请参阅构建环境。
Git 常用命令速查表 | GIT CHEAT SHEET创建CREATE本地更改LOCAL CHANGES提交历史记录COMMIT HISTORY分支机构和标签BRANCHESTAGS...
在开头前几章我们曾讲过怎么在Vim里设置选项。 对于布尔选项,我们可以使用set someoption!来"切换"选项。 如果我们能给这个命令...
现在你拥有了足够的Vimscript技能来打造能帮助许多人的Vim插件。 这一章涉及如何把你的插件发布在网上,以便人们获取,还有如何...
Redis Mget 命令Redis 字符串(string) Redis Mget 命令返回所有(一个或多个)给定 key 的值。如果给定的 key 里面,有某个 key 不...
视图table_privileges标识在表或视图上所有被授予的特权,这些特权必须是被一个当前已被启用角色授出或者被授予给一个当前已被启...
视图view_column_usage标识被使用在一个视图的查询表达式(定义该视图的SELECT语句)中的所有列。只有当包含一列的表被一个当前...
FDW回调函数GetForeignRelSize、GetForeignPaths、GetForeignPlan、PlanForeignModify、GetForeignJoinPaths、GetForeignUpperPa...