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版本,但是我没有解决,技术能力有限...

时间: 2024-10-02 09:39:08

170525、解决maven隐式依赖包版本问题的相关文章

Maven的Pom文件中的隐式依赖导致Jar包冲突的问题

在一次的maven项目中遇到这样一个bug: 编译器没有报什么错,但无法编译,或者能编译,项目启动不了.后来我才发现是以下的问题: 项目中的pom文件中,依赖了webx3.core,而webx3.core又隐式依赖了fasttext相关的jar包,同时我在pom中也引人了fasttext.all, fasttext.all也隐式依赖了fasttext相关的jar包,两类jar包版本还不一样,这样就导致了jar包冲突的问题,牵扯到的pom文件依赖如下: <dependency><group

解决Maven关于本地jar包的打包处理

在使用maven进行jar包管理时,通过我们都是通过maven去下载一些jar包,但有些jar在maven上没有,所以就就可能在本地直接手动加入一些需要用到的外部jar包.但如果我们用maven package打包就会发现,本地的那些jar是不能被maven识别的,所以就需要解决Maven关于本地jar包的打包处理的问题. 还好maven中有提供这样的配置,在pom文件中通过配置附加指定本地jar的路径即可完成maven打包功能. <build> <plugins> <plu

maven 多个jar包版本依赖问题

maven 中使用jar包的多个版本容易造成依赖问题,解决问题的方式可以将 使用jar包的版本排除掉,比如dubbo使用netty 4.0.33版本可以将dubbo排除掉 netty依赖,这样其他jar包就不会引用到netty4.0.33版本了. 如下: <dependency> <groupId>com.jd</groupId> <artifactId>jsf</artifactId> <version>1.6.0</vers

解决IDEA中Maven加载依赖包慢的问题

原理:maven加载jar包过程,默认的是先扫描本地仓库,若本地仓库没有,则扫描远程仓库下载.默认的conf/settings.xml文件没有配置远程仓库,所以扫描的是maven的中央仓库(在国外),所以慢. 解决方法:配置国内镜像(如阿里云的镜像) 修改conf/settings.xml文件,配置阿里云镜像代码 1 <mirrors> 2 <!-- mirror 3 | Specifies a repository mirror site to use instead of a giv

解决maven无法下载oraclejar包的问题

我的项目用的是maven管理jar包,因为一开始使用的是mysql,后面就需要连接oracle,于是我在maven里添上这句代码 <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.4.0</version> <scope>test</scope> </depen

maven添加本地依赖包方法

1.某些情况下不方便上传本地依赖包到Maven repository,可以通过下面方法添加本地依赖包. 2.方法 1).pom.xml中添加以下代码块 <dependency> <groupId>com.mucfc.jpcap</groupId> <artifactId>jpcap-api</artifactId> <scope>system</scope> <!--本地jar的路径,相对或者绝对都可以-->

Maven快速导出maven工程的依赖包

写这个完全是为了给Jmeter测试dubbo接口做下铺垫: 导出maven的依赖包,放到jemeter安装目录的lib目录下,在以管理员的身份打开即可. 直接上命令: 打开windows下的cmd窗口,一直cd到maven程序所在的工作路径执行: mvn dependency:copy-dependencies即可,执行完后会在程序的target下自动生成一个依赖的目录,导出即可:

Maven引入hadoop依赖包出错解决办法

错误: ArtifactTransferException: Failure to transfer org.apache.hadoop:hadoop-hdfs:jar:2.6.0 from http://localhost:8081/nexus/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of cen

Maven安装本地依赖包

前提已安装maven并且配置了环境变量1.进入jar包所在的目录,打开cmd2.了解包的groupId.artifactId.version2.输入命令(依赖sdk为例)---maven命令mvn install:install-file -DgroupId=groupId -DartifactId=artifactId -Dversion=version -Dpackaging=jar -Dfile=jar包文件名---示例mvn install:install-file -DgroupId=