NoClassDefFoundErrors when Gradle Configuration Cache is enabled
- Vorherrschende Sprache
- Java
- Sterne
- 5.6k
- Forks
- 559
- Ø Merge
- 1 T. 14 Std.
- Gemergte PRs (30 T.)
- 43
Beschreibung
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](https://github.com/user-attachments/files/25214993/spotless-cache-repro-master.zip)
Beitragsleitfaden
Rechercherichtung
Lade die beigefügte minimale Reproduktion herunter und führe sie aus. Wiederhole anschließend Configuration-Cache-Builds wie ./gradlew clean build, um den intermittierenden Fehler zu reproduzieren. Verfolge das Laden der Formatter-Klassen des Spotless Gradle Plugin über Clean-Builds mit mehreren Modulen hinweg, einschließlich googleJavaFormat und eclipse(), und überprüfe, dass wiederholte Läufe ohne NoClassDefFoundError abgeschlossen werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- build-system, tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 52/100