Gradle Gradle 守护进程


本文整理自网络,侵删。

Gradle 守护进程

走进守护进程

Gradle 守护进程(有时也称为构建守护进程) 的目的是改善 Gradle 的启动和执行时间。

我们准备了几个守护进程非常有用的用例。对于一些工作流,用户会多次调用 Gradle,以执行少量的相对快速的任务。举个例子:

  • 当使用测试驱动开发时,单元测试会被执行多次。
  • 当开发一个 web 应用程序中,应用程序会被组装多次。
  • 当发现构建能做什么,在 gradle tasks 在哪里会执行多次。

对以上各种工作流来说,让调用 Gradle 的启动成本尽可能小会很重要。

此外,如果可以相对较快地建立 Gradle 模型,用户界面可以提供一些有趣的功能。例如,该守护进程可能用于以下情形:

  • 在 IDE 中的内容帮助
  • 在 GUI 中的实时可视化构建
  • 在 CLI 中的 tab 键完成

一般情况下,构建工具的敏捷行为总是可以派上用场。如果你尝试在你的本地构建中使用守护进程的话,它会变得让你很难回到正常的 Gradle 使用。

Tooling API 在整个过程当中都使用守护进程。如,你无法在没有守护进程时正式地使用 Tooling API。这意味着当您在 Eclipse 中使用 STS Gradle 或在 Intellij IDEA 中使用 Gradle 支持时,您已经在使用 Gradle 守护进程。

未来,该守护进程还会提供更多的功能:

  • 敏捷的 up-to-date 检查:使用本地文件系统修改通知(例如,通过 jdk7 nio.2)预先执行 up-to-date 分析。
  • 更快的构建: 预评估项目,这样当用户接下来调用 Gradle 时,模型就准备好了。
  • 我们提到了更快的构建吗?守护进程可以预先下载依赖项或进行快照依赖的新版本检查。
  • 使用可用于编译和测试的一个可复用线程池。例如,Groovy 和 Scala 的编译器启动开销都很大。构建守护进程可以维持一个已下载的 Groovy 和 (或) Scala 进程。
  • 预先执行某些任务,比如编译。更快的反馈。
  • 快速、 准确的 bash 的 tab 键完成。
  • Gradle 缓存的定期垃圾收集。

重用和失效的守护程序

基本的思想是, gradle 命令会 fork 一个守护进程,用于执行实际的构建。Gradle 命令的后续调用将重用该守护进程,以避免启动开销。有时我们不能使用现有的守护进程,是因为它正忙或其 java 版本或 jvm 参数不同。关于 fork 一个完全新的守护进程的具体细节,请阅读下面的专题。守护进程将在空闲3小时后自动失效。

阅读剩余部分

相关阅读 >>

Gradle 问题反馈

Gradle java 插件

Gradle jetty 插件

Gradle 安装

Gradle web 工程构建

Gradle Gradle 命令行的基本使用

Gradle scala 插件

Gradle 标准的 Gradle 插件

Gradle 使用文件

Gradle osgi 插件

更多相关阅读请进入《Gradle》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...