micronaut-projects / micronaut-data

Ahead of Time Data Repositories
Apache License 2.0
465 stars 197 forks source link

NoSuchMethodError with groovy / micronaut-data / jdbc #485

Closed ssadedin closed 4 years ago

ssadedin commented 4 years ago

Thanks for reporting an issue for Micronaut Data, please review the task list below before submitting the issue. Your issue report will be closed if the issue is incomplete and the below tasks not completed.

NOTE: If you are unsure about something and the issue is more of a question a better place to ask questions is on Stack Overflow (http://stackoverflow.com/tags/micronaut) or Gitter (https://gitter.im/micronautfw/). DO NOT use the issue tracker to ask questions.

Task List

Steps to Reproduce

  1. Install Micronaut 1.0.2 using SDKMan
sdk install micronaut 1.0.2
  1. Create Example Groovy Application
mn create-app --lang groovy test-mn-data
  1. Modify build.gradle as per instructions in [QuickStart)(https://micronaut-projects.github.io/micronaut-data/latest/guide/index.html) by adding in dependencies:
    compile "io.micronaut.configuration:micronaut-jdbc-dbcp:1.0.2"
    compileOnly annotationProcessor("io.micronaut.data:micronaut-data-processor:1.0.2")
    implementation("io.micronaut.data:micronaut-data-jdbc:1.0.2")
  1. Attempt to run application
./gradlew run

Expected Behaviour

Application should run

Actual Behaviour

Fails with stack trace:

13:38:42.759 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: io.micronaut.inject.annotation.DefaultAnnotationMetadata.registerAnnotationType(Lio/micronaut/core/annotation/AnnotationClassValue;)V
java.lang.NoSuchMethodError: io.micronaut.inject.annotation.DefaultAnnotationMetadata.registerAnnotationType(Lio/micronaut/core/annotation/AnnotationClassValue;)V
        at io.micronaut.data.jdbc.operations.$DefaultJdbcRepositoryOperationsDefinitionClass$$AnnotationMetadata.<clinit>(Unknown Source)
        at io.micronaut.data.jdbc.operations.$DefaultJdbcRepositoryOperationsDefinitionClass.<clinit>(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at io.micronaut.core.reflect.ClassUtils.forName(ClassUtils.java:226)
        at io.micronaut.core.io.service.SoftServiceLoader$ServiceLoaderIterator.next(SoftServiceLoader.java:232)
        at io.micronaut.core.io.service.SoftServiceLoader$ServiceLoaderIterator.next(SoftServiceLoader.java:182)
        at io.micronaut.core.io.service.SoftServiceLoader$1.next(SoftServiceLoader.java:159)
        at io.micronaut.core.io.service.SoftServiceLoader$1.next(SoftServiceLoader.java:137)
        at io.micronaut.context.DefaultBeanContext.resolveBeanDefinitionReferences(DefaultBeanContext.java:1002)
        at io.micronaut.context.DefaultApplicationContext.resolveBeanDefinitionReferences(DefaultApplicationContext.java:106)
        at io.micronaut.context.DefaultApplicationContext$BootstrapApplicationContext.resolveBeanDefinitionReferences(DefaultApplicationContext.java:445)
        at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:1994)
        at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:156)
        at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:141)
        at io.micronaut.context.DefaultApplicationContext$RuntimeConfiguredEnvironment.resolveBootstrapPropertySourceLocator(DefaultApplicationContext.java:539)
        at io.micronaut.context.DefaultApplicationContext$RuntimeConfiguredEnvironment.readPropertySourceList(DefaultApplicationContext.java:521)
        at io.micronaut.context.env.DefaultEnvironment.readPropertySources(DefaultEnvironment.java:355)
        at io.micronaut.context.env.DefaultEnvironment.start(DefaultEnvironment.java:246)
        at io.micronaut.context.env.DefaultEnvironment.start(DefaultEnvironment.java:66)
        at io.micronaut.context.DefaultApplicationContext.startEnvironment(DefaultApplicationContext.java:182)
        at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:140)
        at io.micronaut.runtime.Micronaut.start(Micronaut.java:67)
        at io.micronaut.runtime.Micronaut.run(Micronaut.java:271)
        at io.micronaut.runtime.Micronaut.run(Micronaut.java:257)
        at test.mn.data.Application.main(Application.groovy:9)

Environment Information

java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (Zulu 8.21.0.1-macosx) (build 1.8.0_131-b11)
OpenJDK 64-Bit Server VM (Zulu 8.21.0.1-macosx) (build 25.131-b11, mixed mode)

Example Application

https://gitlab.com/ssadedin/micronaut-data-bug

ssadedin commented 4 years ago

I worked out that this was because I was confusing the version of micronaut (1.3.4) with that of micronaut-data (1.0.2) in some of the dependencies.

Apologies and please ignore!