0

I have a grails 2.4.5 project with dependency section in BuildConfig.groovy as:

dependencies {
        // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
        //compile ":memcached:1.0.3.2"
        //compile ":grails-melody:1.47.2"

        // runtime 'mysql:mysql-connector-java:5.1.16'
        compile "org.grails:grails-core:2.2.2.BUILD-SNAPSHOT", { exclude "grails"}     // added for 2.2.1 support of inner class enums (http://jira.grails.org/browse/GRAILS-9627)

    }

The program on running gives this error: Fatal error during compilation org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [jar:file:/C:/Users/Rahulserver/.m2/repository/org/grails/grails-project-api/2.4.5/grails-project-api-2.4.5.jar!/org/codehaus/groovy/grails/compiler/Grailsc.class]; nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class

I did some research on error java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class

And found here that with spring 3.2 above, we don't need any spring-asm explicitly. The dependency report on my project shows that org.grails:grails-core:2.2.2.BUILD-SNAPSHOT depends on spring-asm:

+--- org.grails:grails-core:2.2.2.BUILD-20130226.093746-1
|    \--- commons-collections:commons-collections:3.2.1
|    \--- commons-io:commons-io:2.1
|    \--- org.springframework:spring-context:4.0.9.RELEASE
|    \--- org.springframework:spring-beans:4.0.9.RELEASE
|    \--- org.springframework:spring-aspects:3.1.4.RELEASE
|    \--- org.springframework:spring-expression:4.0.9.RELEASE
|    \--- org.springframework:spring-asm:3.1.4.RELEASE
|    \--- org.springframework:spring-context-support:4.0.9.RELEASE
|    \--- org.springframework:spring-core:4.0.9.RELEASE
|    \--- org.springframework:spring-web:4.0.9.RELEASE
|    \--- aopalliance:aopalliance:1.0
|    \--- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final
|    \--- commons-validator:commons-validator:1.3.1
|    \--- org.springframework:spring-aop:4.0.9.RELEASE

So what should I do to resolve this conflict? Is there any way I could avoid the org.springframework:spring-asm:3.1.4.RELEASE dependency?

Community
  • 1
  • 1
rahulserver
  • 10,411
  • 24
  • 90
  • 164

1 Answers1

0

What is a dependency on Grails 2.2.x doing in a 2.4.5 project?

The bug you are referring to in the comments was fixed in 2.3-M1, so is not present in 2.4.x.

I suspect your errors will disappear if you remove the explicit dependency on grails-core 2.2.2*.

Hans Bogaards
  • 648
  • 5
  • 12