2 điểm bởi click 2025-08-08 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Từ phiên bản 8.6 của Gradle, trong môi trường Windows thường xảy ra lỗi 'Could not move temporary workspace...' do xung đột với phần mềm diệt virus, khiến build thất bại liên tục, nhưng đã được khắc phục cuối cùng ở Gradle 9.1 RC.
  • Người dùng Windows, sau hơn một năm phải chịu đựng lỗi build này, dự kiến sẽ có thể thực hiện build Gradle bình thường trở lại từ phiên bản 9.1. (Vấn đề liên quan: #31438)

Cách hoạt động ở các phiên bản trước

  • Trên từng file, Gradle khóa trực tiếp file (file lock) để đảm bảo tính bất biến của cache dependency. Cách làm đơn giản và rõ ràng.

Từ phiên bản 8.6

  • Để cải thiện hiệu năng, CacheBasedImmutableWorkspaceProvider được giới thiệu, tạo các tệp tạm dựa trên UUID và di chuyển chúng đến một đường dẫn duy nhất sau khi hoàn tất công việc.
  • Cách này được đưa ra để giải quyết tình trạng giảm hiệu năng của cơ chế khóa file trong quá trình chạy integration test.
  • Trên Windows, xảy ra lỗi di chuyển file tạm bị thất bại do xung đột với tính năng giám sát thời gian thực của phần mềm diệt virus (lấy khóa khi tạo file mới).

Cách vá lỗi ở phiên bản 9.1

  • Giới thiệu chiến lược khóa phân theo hệ điều hành.
  • Môi trường Windows: áp dụng chiến lược LockingStrategy.WORKSPACE_LOCK. Nó tạo thư mục con (\workspace) trong đường dẫn cache và khóa toàn bộ thư mục con đó để chặn can thiệp riêng lẻ của phần mềm diệt virus vào từng file, từ đó giải quyết lỗi.
  • Môi trường ngoài Windows: giữ nguyên ATOMIC_MOVE (cách của phiên bản 8.6).

Chưa có bình luận nào.

Chưa có bình luận nào.