国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

Gradle Gradle 守護進程

2022-08-03 14:42 更新

走進守護進程

Gradle 守護進程(有時也稱為構(gòu)建守護進程) 的目的是改善 Gradle 的啟動和執(zhí)行時間。

我們準備了幾個守護進程非常有用的用例。對于一些工作流,用戶會多次調(diào)用 Gradle,以執(zhí)行少量的相對快速的任務(wù)。舉個例子:

  • 當使用測試驅(qū)動開發(fā)時,單元測試會被執(zhí)行多次。
  • 當開發(fā)一個 web 應(yīng)用程序中,應(yīng)用程序會被組裝多次。
  • 當發(fā)現(xiàn)構(gòu)建能做什么,在 gradle tasks 在哪里會執(zhí)行多次。

對以上各種工作流來說,讓調(diào)用 Gradle 的啟動成本盡可能小會很重要。

此外,如果可以相對較快地建立 Gradle 模型,用戶界面可以提供一些有趣的功能。例如,該守護進程可能用于以下情形:

  • 在 IDE 中的內(nèi)容幫助
  • 在 GUI 中的實時可視化構(gòu)建
  • 在 CLI 中的 tab 鍵完成

一般情況下,構(gòu)建工具的敏捷行為總是可以派上用場。如果你嘗試在你的本地構(gòu)建中使用守護進程的話,它會變得讓你很難回到正常的 Gradle 使用。

Tooling API 在整個過程當中都使用守護進程。如,你無法在沒有守護進程時正式地使用 Tooling API。這意味著當您在 Eclipse 中使用 STS Gradle 或在 Intellij IDEA 中使用 Gradle 支持時,您已經(jīng)在使用 Gradle 守護進程。

未來,該守護進程還會提供更多的功能:

  • 敏捷的 up-to-date 檢查:使用本地文件系統(tǒng)修改通知(例如,通過 jdk7 nio.2)預(yù)先執(zhí)行 up-to-date 分析。
  • 更快的構(gòu)建: 預(yù)評估項目,這樣當用戶接下來調(diào)用 Gradle 時,模型就準備好了。
  • 我們提到了更快的構(gòu)建嗎?守護進程可以預(yù)先下載依賴項或進行快照依賴的新版本檢查。
  • 使用可用于編譯和測試的一個可復(fù)用線程池。例如,Groovy 和 Scala 的編譯器啟動開銷都很大。構(gòu)建守護進程可以維持一個已下載的 Groovy 和 (或) Scala 進程。
  • 預(yù)先執(zhí)行某些任務(wù),比如編譯。更快的反饋。
  • 快速、 準確的 bash 的 tab 鍵完成。
  • Gradle 緩存的定期垃圾收集。

重用和失效的守護程序

基本的思想是, gradle 命令會 fork 一個守護進程,用于執(zhí)行實際的構(gòu)建。Gradle 命令的后續(xù)調(diào)用將重用該守護進程,以避免啟動開銷。有時我們不能使用現(xiàn)有的守護進程,是因為它正忙或其 java 版本或 jvm 參數(shù)不同。關(guān)于 fork 一個完全新的守護進程的具體細節(jié),請閱讀下面的專題。守護進程將在空閑3小時后自動失效。

以下是我們 fork 一個新的守護進程的所有情況:

  • 如果該守護進程當前正忙于運行一些作業(yè),將啟動一個全新的守護進程。
  • 對每個 java home,我們會 fork 一個單獨的守護進程。所以即使有一些閑置的守護進程等待構(gòu)建請求,但你碰巧通過不同的 java HOME 運行構(gòu)建,那么一個全新的守護進程將會被 fork。
  • 如果用于構(gòu)建的jvm的參數(shù)足夠不同,我們會 fork 一個單獨的守護進程。例如,如果某些系統(tǒng)屬性已經(jīng)更改,我們不會 fork 一個新的守護進程。然而,如果 -Xmx 內(nèi)存設(shè)置更改了,或一些基本的不變的系統(tǒng)屬性更改了 (例如 file.encoding),那么將 fork 新的守護進程。
  • 在這一刻,守護進程會被加上 Gradle 的特定版本號。這意味著即使一些守護進程處于空閑狀態(tài),但您正在運行的構(gòu)建與 Gradle 不同版本,也將啟動一個新的守護進程。這也有一種 --stop 命令行指令的結(jié)果: 當運行 --stop 時,您僅可以停止以你的 Gradle 版本啟動的守護進程。

我們計劃在將來改進守護進程的 managing / pooling 的方法。

用法和故障排除

關(guān)于命令行的用法,可以看一下專題附錄 D, Gradle 命令行。如果你已經(jīng)厭倦反復(fù)使用相同的命令行選項,可以看看構(gòu)建環(huán)境。這一章節(jié)包含了有關(guān)如何以一種“持久化”的方式配置某些行為(包括在默認情況下打開守護進程)的信息。

以下是有關(guān) Gradle 守護進程的故障排除的一些方面:

  • 如果你的構(gòu)建有問題,請嘗試暫時禁用守護進程 (您可以通過使用命令行開關(guān)--no-daemon)。
  • 有時候,您可能想要通過--stop命令行選項或更有力的方式停止守護程序。
  • 默認情況下位于 Gradle 用戶主目錄有一個守護進程的日志文件。
  • 你可能想要以--foreground 模式啟動守護程序,以觀察構(gòu)建是怎么執(zhí)行的。

配置守護進程

可以配置一些守護進程的設(shè)置,例如 JVM 參數(shù)、內(nèi)存設(shè)置或 Java home 目錄。有關(guān)更多信息請參閱構(gòu)建環(huán)境。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號