NoClassDefFoundError alınıyor: org.codehaus.groovy.vmplugin.v7.Java7 sınıfı başlatılamadı
Spring Boot uygulamamı başlattığımda aşağıdaki hatayı alıyorum.
java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
at org.codehaus.groovy.runtime.dgmimpl.NumberNumberMetaMethod.<clinit>(NumberNumberMetaMethod.java:33) ~[groovy-2.5.8.jar:2.5.8]
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[na:na]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) ~[na:na]
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.createMetaMethodFromClass(MetaClassRegistryImpl.java:258) ~[groovy-2.5.8.jar:2.5.8]
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:111) ~[groovy-2.5.8.jar:2.5.8]
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:86) ~[groovy-2.5.8.jar:2.5.8]
at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:36) ~[groovy-2.5.8.jar:2.5.8]
at org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader.<init>(GroovyBeanDefinitionReader.java:150) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
at org.springframework.boot.BeanDefinitionLoader.<init>(BeanDefinitionLoader.java:85) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.createBeanDefinitionLoader(SpringApplication.java:738) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.load(SpringApplication.java:681) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:392) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at pizzainthecloud.pizzaplace.Application.main(Application.java:23) ~[main/:na]
Çok fazla arama yaptıktan sonra, java.lang.NoClassDefFoundError dahil olmak üzere bunun birkaç örneğini buldum : org.codehaus.groovy.vmplugin.v7.Java7 sınıfı başlatılamadı , ancak çoğu gradle ve groovy'nin eski sürümlerindeki eski gönderiler veya bunlarla ilgili android.
İşte sürüm bilgilerim:
$ gradle -version
------------------------------------------------------------
Gradle 6.6.1
------------------------------------------------------------
Build time: 2020-08-25 16:29:12 UTC
Revision: f2d1fb54a951d8b11d25748e4711bec8d128d7e3
Kotlin: 1.3.72
Groovy: 2.5.12
Ant: Apache Ant(TM) version 1.10.8 compiled on May 10 2020
JVM: 14.0.2 (Oracle Corporation 14.0.2+12-46)
OS: Linux 5.4.0-42-generic amd64
Tamamen groovy / spock olan birim testlerim dışında herhangi bir groovy yapmıyorum ve inşa motorum için gradle kullanıyorum.
Bulduğum yönergeleri izleyerek devam ettim ve benim değiştirdi gradle-wrapper.propertiesdosyayı
distributionUrl=https\://services.gradle.org/distributions/gradle-6.6-bin.zip
6.5 kutu idi.
Bu proje eski bilgisayarımda Java 8 ile sorunsuz çalışıyordu. Projeyi yeni iş istasyonuma taşıdım ve taşınmaya çalışıyorum open JDK 14ve işte o zaman yeni sorun başladı.
Buradan nereye gideceğimi merak ediyorum.
Yanıtlar
Nereden https://github.com/gradle/gradle/issues/10248
Görünüşe göre GROOVY-9211, 2.5.x'e geri yüklenmeyecek. Öyle görünüyor ki Gradle, JDK 14'ü desteklemek için çıktığında Groovy 3.x'e yükseltmek zorunda kalacak.
Gradle Groovy 3.x'i kullanana kadar JDK 13 kullanmanız gerekecektir.
Maven 3.2 kullanarak aynı sorunu yaşadım. ve JDK 1.8. JDK 11'e yükseltmek sorunu çözdü.