Jenkins報錯'Gradle build daemon disappeared unexpectedly'的問題解決

Shengjie發表於2018-09-30

在將專案整合到 Jenkins 後,經常會出現不穩定的構建,Jenkins 控制檯輸出的錯誤資訊為:Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
Jenkins報錯'Gradle build daemon disappeared unexpectedly'的問題解決

經過調查,問題可能出在 ./gradlew assembleDebug 這條命令上。

通過檢視Gradle的官方文件,得知從 Gradle 3.0 開始,Daemon 便預設開啟的。它是一個長時間執行的後臺程式,作用是在記憶體中儲存構建資訊,以便在之後的構建過程中複用資訊提高構建速度。

但是在文件中,也提到一句:If you run CI builds in ephemeral environments (such as containers) that do not reuse any processes, use of the Daemon will slightly decrease performance (due to caching additional information) for no benefit, and may be disabled. 大概的意思是如果通過CI(持續整合)進行專案構建,Daemon 就沒多大作用了,反倒會因為儲存額外的資訊而降低系統效能,從而導致被停用。
Jenkins報錯'Gradle build daemon disappeared unexpectedly'的問題解決

那麼,如何在 Jenkins 裡停止使用 Daemon 呢?

很簡單,如下:
./gradlew --no-daemon assembleDebug
在命令里加入一個 --no-daemon 引數就好啦。

相關文章