maven使用问题记载

一、浩言

生活永远不可能像我们想象的那样好,但也不会想象的那样糟糕,无论是好的时候,还是糟糕的时候,都一定要坚强。

二、背景

人都是对时间铭感的,特别是这个时间,也正是去年的这个时候,自己遇到了一些事情,那个时候刚果毕业不久,经历了哪些事情自己也算事成熟不少,又到了去年的今日,突然觉得好怀念;好了继续问题,最近在在代码里面加队列,但是加了包整个项目的启动就报错,主要是一个加载问题,这就是jar包冲突问题。具体如下:

三、maven问题

在说jar包冲突之前,先说说这个maven编译的时候出现的问题
3.1、 error in opening zip file
今天我的maven项目报打不开jar包,然后在网上搜了下,网上说可以把这个打不开的jar的包目录删掉然后重新编译即可,实验了下果然可以。
3.2、jar冲突问题
maven中可以使用如下命令查看jar的依赖关系

mvn dependency:tree -Dverbose
maven使用问题记载_第1张图片
Paste_Image.png

说说我的jar问题,在引入了activemq版本为5.14.2之后,主要jar版本如下

 4.2.3.RELEASE
 1.7.6.RELEASE
 5.14.2
 >2.6.2

然后启动的时候就报错如下:

Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.mangocity.common.redis.RedisServer com.mangocity.mbr.service.impl.CASServiceImpl.redisServer; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisServer': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisTemplate' defined in class path resource [applicationContext-bean.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.serializer.support.DeserializingConverter.(Ljava/lang/ClassLoader;)V
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:561)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
    ... 26 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisServer': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisTemplate' defined in class path resource [applicationContext-bean.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.serializer.support.DeserializingConverter.(Ljava/lang/ClassLoader;)V
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:308)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1208)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1120)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1044)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533)
    ... 28 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisTemplate' defined in class path resource [applicationContext-bean.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.serializer.support.DeserializingConverter.(Ljava/lang/ClassLoader;)V
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1572)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.f
actory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:461)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:435)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:559)
    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:305)
    ... 39 more
Caused by: java.lang.NoSuchMethodError: org.springframework.core.serializer.support.DeserializingConverter.(Ljava/lang/ClassLoader;)V
    at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.(JdkSerializationRedisSerializer.java:53)
    at org.springframework.data.redis.core.RedisTemplate.afterPropertiesSet(RedisTemplate.java:119)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1631)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1568)
    ... 51 more
maven使用问题记载_第2张图片
Paste_Image.png

最后我首先修改了redis.clients的版本,但是5.14.2的activemq还是不支持,只要是5.11.3之上的都会报错。
最后项目相关的几个包版本如下

 4.2.3.RELEASE
 1.7.6.RELEASE
 5.11.3
 >2.9.0

配置activeMQ的jar包如下:

  
    org.apache.activemq  
    activemq-pool  
    ${activemq.version}  
  

    org.apache.httpcomponents
    httpcore
    4.4.5


    org.apache.httpcomponents
    httpclient
    4.5.2

在开发工具中查看activemq-all的依赖是没有显示的


maven使用问题记载_第3张图片
Paste_Image.png

四、思考

有关jar的冲突在maven中还是会经常遇到的,我的这个本身是没有依赖的,是改了其他jar的版本来实现功能的,但是有的jar是需要排除其他的依赖才行的。此时就需要这种依赖jar的版本信息了。

五:浩语

                                 __                                                     
                  __  _  ____ __|  |__ _____    ___
                  \ \/ \/ /  |  \  |  \\__  \  /  _ \   
                   \     /|  |  /   Y  \/ __ \(  <_> )
                    \/\_/ |____/|___|  (____  /\____/ 
                                          \/     \/          
                       任何事情都是要靠努力和用心。                                                   

你可能感兴趣的:(maven使用问题记载)