Maven使用中的问题
1.新建微服务应用,引用公司中的公共数据源common-datasource的jar包(含mybatis包),配置好依赖关系后,启动项目,报如下错误:
java.lang.NoClassDefFoundError: org/apache/ibatis/cursor/Cursor
网上搜索之后说是因为mybatis和mybatis-spring的版本问题导致的,需要切换版本如下:
查看公共数据源jar中的pom发现common-datasource中的pom版本正确,如下:
实际jar包中加载的mybatis版本却是3.2.3版本,通过MVN dependency:tree 检查依赖关系之后,发现是其他的公共组件B项目jar包中也引用了mybatis包,且版本较低导致。
解决方法:将数据源的依赖关系放到B项目的依赖之前就可以解决,也可以通过如下配置剔除依赖:
<exclusions> <exclusion> <groupId></groupId> <artifactId></artifactId> </exclusion> </exclusions>