Jar包冲突引发的血案
2018-02-09 23:37
363 查看
Spring Boot和RabbitMq集成的时候,引入
在运行项目的时候报了错:
报错显示
通过
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/01/5c77d934a5c85b647c546670dc63a481)
看来确实是依赖的
原来在我的
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/01/626a919e40e98bd223233b42411794ff)
后面的
在build.gradle文件中注释掉这个我单独引进的依赖:
然后项目跑起来了!
compile("org.springframework.boot:spring-boot-starter-amqp")
在运行项目的时候报了错:
Caused by: java.lang.NoClassDefFoundError: com/rabbitmq/client/QueueingConsumer at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.getDeclaredMethods(Class.java:1975) at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:613) at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:489) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.buildLifecycleMetadata(InitDestroyAnnotationBeanPostProcessor.java:206) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.findLifecycleMetadata(InitDestroyAnnotationBeanPostProcessor.java:187) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(InitDestroyAnnotationBeanPostProcessor.java:125) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(CommonAnnotationBeanPostProcessor.java:295) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:992) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:523) ... 157 common frames omitted Caused by: java.lang.ClassNotFoundException: com.rabbitmq.client.QueueingConsumer at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 168 common frames omitted
报错显示
com.rabbitmq.client.QueueingConsumer这个类找不到,这个类是
com.rabbitmq:amqp-client包中的类,是不是
com.rabbitmq:amqp-client引入的版本不对,新版本的amqp-client中是不存在这个类的?
通过
gradle dependencies > dependencies.txt输出依赖树到文件:
看来确实是依赖的
amqp-client版本冲突了,
spring-boot-starter-amqp中本身传递依赖进来的是
4.0.3,可实际依赖的是
5.1.2。
原来在我的
build.gradle有单独引进了:
后面的
*表示这个依赖被忽略了,这是因为在其他顶级依赖中通过传递依赖引进了这个依赖,Gradle 会自动分析下载了最合适的依赖。
在build.gradle文件中注释掉这个我单独引进的依赖:
// compile 'com.rabbitmq:amqp-client:5.1.2'
然后项目跑起来了!
相关文章推荐
- mysql字段名冲突引发的血案
- mysql字段名冲突引发的血案
- router id冲突 引发的血案 推荐
- 一段代码引发的血案
- 由@DynamicInsert(true) @DynamicUpdate(true)引发的“血案”
- Hbase、elasticsearch整合中jar包冲突
- 一个电容引发的血案-经验教训篇
- 一个fopen函数中未使用二进制模式(b)引发的血案
- studio so库和jar包冲突
- alter index rebuild online引发的血案
- 一场由过滤器Filter引发的血案
- 2007-11-16 日志:照片,难道真要引发血案?
- 一个子查询引发的血案
- [WCF]缺少一行代码引发的血案
- 一个“Spring轮子”引发的“血案”(2)
- 一次oracle安全加固引发的血案
- 一个“Spring轮子”引发的“血案”(2)
- ORACLE Bug 4431215 引发的血案—原因分析篇
- Android Touch事件传递机制引发的血案
- 使用MBProgressHUD引发"self.navigationController.view为nil"的血案