google-java-format 1.37.0 fails because JavaFormatterOptions.Style is no longer an enum
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- java
- Área
- build-system
Línea de trabajo
Empieza por GoogleJavaFormatFormatterFunc.java, en el constructor que aparece en el stack trace; después, inspecciona GoogleJavaFormatStep.java y cómo se gestionan las versiones de google-java-format. Compara la API de las versiones 1.36.1 y 1.37.0, y encuentra las pruebas existentes para el paso de Google Java Format. El trabajo estará terminado cuando la reproducción de Gradle proporcionada se formatee correctamente con 1.37.0 y pasen las pruebas pertinentes.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Spotless Gradle 8.10.4 fails to initialize google-java-format 1.37.0. The same minimal project formats successfully with 1.36.1.
Environment: Gradle 9.8.2, Temurin JDK 25.0.4.1, Ubuntu 26.04.1 LTS (x86_64).
settings.gradle.kts:
rootProject.name = "formatter-repro"
Complete build.gradle.kts:
plugins { id("com.diffplug.spotless") version "8.10.4" }
repositories { mavenCentral() }
spotless {
java {
target("src/**/*.java")
googleJavaFormat("1.37.0").aosp()
}
}
src/main/java/Sample.java:
class Sample{void run(){System.out.println("sample");}}
Run ./gradlew spotlessApply. Expected: the file is formatted. Actual:
> Task :spotlessJava
> Task :spotlessJavaApply FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':spotlessJavaApply' (registered in build file 'build.gradle.kts').
> There were 1 lint error(s), they must be fixed or suppressed.
src/main/java/Sample.java:LINE_UNDEFINED google-java-format(java.lang.reflect.InvocationTargetException) java.lang.reflect.InvocationTargetException (...)
Resolve these lints or suppress with `suppressLintsFor`
The serialized lint detail contains the underlying exception:
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
at com.diffplug.spotless.java.GoogleJavaFormatStep$State.createFormat(GoogleJavaFormatStep.java:188)
Caused by: java.lang.NoSuchMethodError: 'com.google.googlejavaformat.java.JavaFormatterOptions$Style com.google.googlejavaformat.java.JavaFormatterOptions$Style.valueOf(java.lang.String)'
at com.diffplug.spotless.glue.java.GoogleJavaFormatFormatterFunc.<init>(GoogleJavaFormatFormatterFunc.java:51)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
Upstream cause: google-java-format 1.37.0 changed JavaFormatterOptions.Style from an enum to a record, so Style.valueOf(String) no longer exists. The current Spotless GoogleJavaFormatFormatterFunc still calls it. The enum is present in 1.36.1.
Verified workaround: change only googleJavaFormat("1.37.0") to googleJavaFormat("1.36.1"); spotlessApply then succeeds on the same file and environment.
- Lenguaje dominante
- Java
- Estrellas
- 5.7k
- Forks
- 562
- Merge medio
- 3 d 2 h
- PR fusionados (30 d)
- 14
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de diffplug/spotless
-
Expose `maxLineLength` on the `googleJavaFormat` step (configurable upstream since gjf 1.37.0)Posiblemente ocupada @xzxiaoshan la tomó hace 4 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 28/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 43/100
diffplug/spotless#3147 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 28/100
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
Todos los issues de diffplug/spotless
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
strimzi/strimzi-kafka-operator#13328 · 1 comentario · 3 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
GoogleContainerTools/jib#4538 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
OpenLiberty/ci.maven#2137 ·
Los mantenedores suelen responder en 1 día
-
Payer adjustment can exceed the balance left after copay and deductible, so claim payments add up to more than the chargePosiblemente ocupada @DG47 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
synthetichealth/synthea#1772 ·
Los mantenedores suelen responder en 13 días
-
bug dependencies
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100