我在BuildConfig.groovy中有一个带有依赖部分的grails 2.4.5项目:
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)
}
运行程序出现此错误:
编译期间出现致命错误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
我对错误java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
并且发现here在上面的第3.2章中,我们不需要任何spring-asm。
我项目的依赖关系报告显示org.grails:grails-core:2.2.2.BUILD-SNAPSHOT
依赖于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
那么我应该怎么做才能解决这个冲突呢?有什么方法可以避免 org.springframework:spring-asm:3.1.4.RELEASE依赖?
答案 0 :(得分:0)
在2.4.5项目中对Grails 2.2.x的依赖是什么?
您在评论中提到的错误已在2.3-M1中修复,因此在2.4.x中不存在。
我怀疑如果你删除对grails-core 2.2.2 *的明确依赖,你的错误就会消失。