NoClassDefFoundErrors when Gradle Configuration Cache is enabled

Đang mở
#2,850 15 bình luận 18 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
52/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
java
Lĩnh vực
build-system, tooling

Hướng nghiên cứu

Tải xuống và chạy bản tái hiện tối thiểu đính kèm, sau đó lặp lại các build configuration-cache như ./gradlew clean build để tái hiện lỗi không liên tục. Theo dõi việc tải các lớp formatter của Spotless Gradle Plugin qua các clean build đa mô-đun, bao gồm googleJavaFormat và eclipse(), đồng thời xác minh rằng các lần chạy lặp lại hoàn tất mà không có NoClassDefFoundError.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

When the Gradle Configuration Cache is enabled, I see intermittent java.lang.NoClassDefFoundError for googleJavaFormat classes for tasks like removeUnusedImports(), or org.eclipse.jdt classes when using the eclipse() formatter.

Spotless Gradle Plugin: 8.2.1
Gradle Wrapper: 9.3.0
Java: observed on 21 and 25

In my observations, I have only seen issues when the project has multiple modules, and only when running a command including clean. ./gradlew clean and ./gradlew build work in isolation, but when running ./gradlew clean build for instance, it results in an error similar to below when running it multiple times in a row.

Execution failed for task ':server:spotlessJavaCheck'.
> There were 1 lint error(s), they must be fixed or suppressed.
  src/main/java/com/test/Main.java:LINE_UNDEFINED removeUnusedImports(java.lang.NoClassDefFoundError) com/google/googlejavaformat/java/RemoveUnusedImports (...)
  Resolve these lints or suppress with `suppressLintsFor`

I've attached a minimal reproduction zip:
spotless-cache-repro-master.zip

Ngôn ngữ chính
Java
Star
5.7k
Fork
560
Merge trung bình
1 ngày 13 giờ
Pull request đã merge (30 ngày)
43

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của diffplug/spotless

Tất cả issue của diffplug/spotless

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.