Trong khi cố gắng cải thiện hiệu suất của các bản dựng Android Gradle của mình, tôi tình cờ gặp Gradle Daemon, và đã sử dụng nó với thành công lớn cho các bản dựng cục bộ.Jenkins Builds Fail Sử dụng Gradle Daemon
Tuy nhiên, khi chạy dưới Jenkins trên Ubuntu 14.04, xây dựng được liên tục thất bại với:
Starting process 'Gradle Test Executor 2'. Working directory: /tmp/myproject/android/example Command: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -ea -cp /data/var/lib/jenkins/.gradle/caches/2.14.1/workerMain/gradle-worker.jar worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 2'
Successfully started process 'Gradle Test Executor 2'
Daemon vm is shutting down... The daemon has exited normally or was terminated in response to a user interrupt.
Starting process 'Gradle Test Executor 3'. Working directory: /tmp/myproject/android/example Command: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -ea -cp /[...]/.gradle/caches/2.14.1/workerMain/gradle-worker.jar worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 3'
----- End of the daemon log -----
FAILURE: Build failed with an exception.
* What went wrong:
Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.
Error: Failed to run test (./gradlew --console=plain --info test -p myproject).
FAILURE: Build failed with an exception.
Nhiều bản xây dựng có thể chạy song song. Nếu tôi chạy một bản dựng theo cách thủ công khi không có bản dựng nào khác đang chạy, tôi không thể tái tạo nó. Someone else có vấn đề này, nhưng giải pháp được đề nghị chỉ là vô hiệu hóa Gradle Daemon, mà tôi không muốn làm. Tôi nghĩ rằng một môi trường xây dựng lớn, đồng thời sẽ chính xác là những gì Gradle Daemon có ý định tối ưu hóa.
Hoặc, nếu tôi không thể làm cho Gradle Daemon hoạt động đáng tin cậy dưới Jenkins, tại sao không? Cảm ơn!
Câu hỏi hay, tôi đang ở trong cùng một cấu hình thuyền chính xác. Tôi sẽ cố gắng tái tạo sự cố tại địa phương và xem liệu tôi có thể cung cấp giải pháp hay không. –
Hmm, https://docs.gradle.org/current/userguide/gradle_daemon.html#when_should_i_not_use_the_gradle_daemon –
Tôi gặp vấn đề tương tự và dường như tôi không thể khắc phục. Tôi vô hiệu hóa daemon trong tất cả các cách có thể (cờ, biến môi trường, vv), các phiên bản Gradle khác nhau, các thiết lập VM khác nhau, từ 64m tối đa đến 2GB bộ nhớ. Tôi cũng đã thử 2 bản cài đặt hoàn toàn mới, một trên Ubuntu 16.04 và một trên Ubuntu 14.04. Cuối cùng tôi đã thử sử dụng các phiên bản Java khác nhau cả 7 và 8 (mặc dù tôi thực sự cần 8) và cả VM của OpenJDK và Oracle. Thật không may không có gì hoạt động. Tôi thực sự sẽ đánh giá cao một giải pháp cho vấn đề này. Trên máy tính Windows 7 và 10, mọi thứ đều chạy tốt. –