170525、解决maven隐式依赖包版本问题

今天在使用dubbo2.5.3版本的时候,启动项目的时候发现一个问题,tomcat启动一直报错

Caused by: java.lang.IllegalStateException: Context namespace element 'component-scan' and its parser class [org.springframework.context.annotation.ComponentScanBeanDefinitionParser] are only available on JDK 1.5 and higher仔细看来,我用的jdk1.8 ,编译也是jdk1.8,仔细想想有可能式是jar包冲突,仔细排查是dubbo默认引用的spring版本太低了导致的,如图

  解决方案:

通过

maven的 <exclusions>标签解决类包依赖冲突

<dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.5.3</version>
                <exclusions> 
                    <exclusion> 
                        <groupId>org.springframework</groupId> 
                        <artifactId>spring</artifactId> 
                    </exclusion> 
                </exclusions>
            </dependency>

这样就去掉了隐式引用

 再编译启动正常了

PS:网上我看有很多博文,是降低jdk或者升级spring版本,我没有试验,不知道可不可行

原文地址:https://www.cnblogs.com/zrbfree/p/7266830.html