google-java-format 1.37.0 fails because JavaFormatterOptions.Style is no longer an enum
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 74/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- java
- Domínio
- build-system
Direção de pesquisa
Comece por GoogleJavaFormatFormatterFunc.java, no construtor mostrado no stack trace; em seguida, inspecione GoogleJavaFormatStep.java e o tratamento das versões do google-java-format. Compare a API nas versões 1.36.1 e 1.37.0 e encontre os testes existentes para a etapa do Google Java Format. O trabalho estará concluído quando a reprodução Gradle fornecida formatar corretamente com 1.37.0 e os testes relevantes passarem.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Java
- Estrelas
- 5.7k
- Forks
- 563
- Merge médio
- 2d 11h
- PRs com merge (30d)
- 13
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de diffplug/spotless
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Expose `maxLineLength` on the `googleJavaFormat` step (configurable upstream since gjf 1.37.0)Talvez já em andamento @xzxiaoshan assumiu há 7 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 28/100
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 43/100
diffplug/spotless#3147 · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 28/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
Todas as issues de diffplug/spotless
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
Mantenedores costumam responder em até 1 dia
-
documentation good first issue priority: low
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 78/100
Gautam-aman/CODOVYN#52 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
ControlSystemStudio/phoebus#3998 ·
Mantenedores costumam responder em até 1 dia
-
bug/错误
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
FCL-Team/FoldCraftLauncher#1982 · 2 comentários ·
Mantenedores costumam responder em até 1 dia