当我尝试启动服务器时出现以下异常:
Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
一些stackoverflow帖子暗示我的classpath中有spring-asm的冲突版本。通过gradle依赖性分析,我看到我没有spring-asm的多个版本,但我确实有spring-core的多个版本(版本3.1.4和5.0.2)
org.springframework:spring-core:5.0.2.RELEASE (conflict resolution)
+--- runtime
...
+--- project :foundation-util
...
org.springframework:spring-core:3.1.4.RELEASE -> 5.0.2.RELEASE
+--- com.abc:adcontentserviceclient:1801
| +--- project :domain-cs-bl
| | +--- runtime
...
我试图排除版本3.1.4,但无法使其正常工作。我试图在依赖性级别和配置级别排除它。
configurations {
all*.exclude group: 'spring-framework', module: 'spring-core'
}
dependencies {
compile(group: 'com.abc, name: 'adcontentserviceclient', version: "${adCsVersion}", changing: true) {
exclude group: 'org.springframework', module: 'spring-core'
}
即使进行了上述更改,我仍然可以在依赖性分析输出中找到spring-core:3.1.4.RELEASE。
答案 0 :(得分:0)
输出
org.springframework:spring-core:3.1.4.RELEASE -> 5.0.2.RELEASE
意味着虽然某处需要3.1.4.RELEASE
,但gradle实际上正在使用5.0.2.RELEASE
来满足这一要求。因此,您无需排除3.1.4.RELEASE
。你的问题出在其他地方。
您仍然可以排除3.1.4.RELEASE
,但您在问题中提供的详细信息不足以告诉您它为何无效。