springboot依赖冲突问题及解决过程

项目场景:

新搭了一个springboot 2.3.7.RELASE的框架,在集成mysql,tkMapper,mybatis的过程中,启动报错。

问题描述:

提示各种依赖的错误 通过idea的功能解决冲突依赖,尝试了多次,也不行 还尝试过删除可能意外引入的jar:

原因分析:

在之前搭的一个分布式项目里面有这些基础的配置,依赖按照版本拿过来一个个添加,尝试,依然不行。 在旧的项目可以,在这里就不行。 把springboot版本改成和旧项目一样,也不可以。

解决方案:

最后,把代码全部删掉(因为是新项目,所以原本也没几个文件),只留下了一个启动类。然后maven依赖只留下了springboot的test 和 web,尝试启动,是可以的。 接着,慢慢加mysql-collection 依赖,druid依赖。到这里的时候报错了。 查看控制台,发现报错的是一个1.5.7的springboot。想着把它通过exclusions去掉,然后接着clear, install 打包,又报错了。又是一个新的错误。 这时候想起来在最开始处理依赖的时候,就是各种exclusions去除jar包,就是因为版本的问题。 想着添加parent试试。 在pom.xml里面添加parent,通过parent控制springboot依赖。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.7.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

然后把前面去除的exclusions配置去掉,发现这时候启动报的错误正常了!
这里说的正常,是指配置什么,报的是它相关的错误,而不是一些稀奇古怪都没见过的错误。

查看了下mysql的配置文件没问题,然后根据这个错误百度下:

Unsatisfied dependency expressed through field 'basicProperties

在项目里面复制进来,没有输入版本号,发现直接自动引入了当前springboot对应的版本。

然后重启,成功了。

总结

看了下之前写的项目,发现也是有加parent的,可能是时间长了,忘记了,这次做个笔记记录一下。
这次为啥不加呢,因为搭建的maven工程是有module的,父子工程。
了解了maven的dependencyManagement后,就想通过它来管理jar包依赖,所以就没加parent了。

到此这篇关于springboot依赖冲突解决过程的文章就介绍到这了,更多相关springboot依赖冲突内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解SpringBoot启动类的扫描注解的用法及冲突原则

    背景 SpringBoot 启动类上,配置扫描包路径有三种方式,最近看到一个应用上三种注解都用上了,代码如下: @SpringBootApplication(scanBasePackages ={"a","b"}) @ComponentScan(basePackages = {"a","b","c"}) @MapperScan({"XXX"}) public class XXApplic

  • SpringBoot MongoDB 索引冲突分析及解决方法

    一.背景 spring-data-mongo 实现了基于 MongoDB 的 ORM-Mapping 能力, 通过一些简单的注解.Query封装以及工具类,就可以通过对象操作来实现集合.文档的增删改查: 在 SpringBoot 体系中,spring-data-mongo 是 MongoDB Java 工具库的不二之选. 二.问题产生 在一次项目问题的追踪中,发现SpringBoot 应用启动失败,报错信息如下: Error creating bean with name 'mongoTempl

  • 解决SpringBoot自定义拦截器和跨域配置冲突的问题

    目录 SpringBoot自定义拦截器和跨域配置冲突 技术栈 问题引出 原代码 新代码 SpringBoot 拦截器和addCorsMappings冲突 SpringBoot自定义拦截器和跨域配置冲突 技术栈 vue-cli3,springboot 2.3.2.RELEASE 问题引出 在做毕业设计过程中用到了自定义拦截器验证登录.同时在springboot配置类中设置了跨域问题,出现跨域失败的情况. 原代码 @Configuration public class WebConfig exten

  • springBoot启动报错log4j冲突的解决方案

    springBoot启动报错log4j冲突 先上一段报错内容 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/soft/apache-tomcat-8.5.31/webapps/ui/WEB-INF/lib/log4j-slf4j-impl-2.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found

  • springboot依赖冲突问题及解决过程

    项目场景: 新搭了一个springboot 2.3.7.RELASE的框架,在集成mysql,tkMapper,mybatis的过程中,启动报错. 问题描述: 提示各种依赖的错误 通过idea的功能解决冲突依赖,尝试了多次,也不行 还尝试过删除可能意外引入的jar: 原因分析: 在之前搭的一个分布式项目里面有这些基础的配置,依赖按照版本拿过来一个个添加,尝试,依然不行. 在旧的项目可以,在这里就不行. 把springboot版本改成和旧项目一样,也不可以. 解决方案: 最后,把代码全部删掉(因为

  • 关于Springboot+gateway整合依赖并处理依赖冲突问题

    正文 spring boot版本和spring cloud版本 框架 版本 SpringBoot 2.3.12.RELEASE SpringCloud Hoxton.SR1 pom依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.12.RELEA

  • Android Studio Gradle依赖冲突解决方法

    前言 本文主要给大家介绍了Android Studio Gradle依赖冲突解决的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 1. 查看依赖树 ./gradlew dependencies 2. 解决依赖冲突 一旦在构建中存在依赖冲突,开发人员需要决定哪个版本的库最终包含在构建中,有许多解决冲突的方法. 1. 逐个排除 compile('junit:junit:4.12'){ exclude group : 'org.hamcrest',module:'hamcre

  • 简单了解Spring循环依赖解决过程

    这篇文章主要介绍了简单了解Spring循环依赖解决过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前言 说起Spring中循环依赖的解决办法,相信很多园友们都或多或少的知道一些,但当真的要详细说明的时候,可能又没法一下将它讲清楚.本文就试着尽自己所能,对此做出一个较详细的解读.另,需注意一点,下文中会出现类的实例化跟类的初始化两个短语,为怕园友迷惑,事先声明一下,本文的实例化是指刚执行完构造器将一个对象new出来,但还未填充属性值的状态,而

  • 详解maven依赖冲突以及解决方法

    什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突 依赖冲突的原因 依赖冲突很经常是类包之间的间接依赖引起的.每个显式声明的类包都会依赖于一些其它的隐式类包,这些隐式的类包会被maven间接引入进来,从而造成类包冲突 如何解决依赖冲突 首先查看产生依赖冲突的类jar,其次找出我们不想要的依赖类jar,手工将其排除在外就可以了.具体执行步骤如下 1.查看依赖冲突 a.通过dependency:tree是命令来检查版本冲突 mvn -Dverbose dep

  • 使用idea解决maven依赖冲突的问题

    前言:我们进行用maven 开发组件的时候,经常会遇到一种情况,我们添加一些maven依赖后,经常会出现本地原本正常的代码编译不过去 下面我们就将这种问题的解决思路和解决方案逐步讲解 记录报错的那几个类 将刚才添加的maven依赖都还原找到刚才报错的类的jar包的版本号 例如我们的文件fastjson-1.2.58 还原刚才加入的maven依赖在刚才编译报错的maven 模块上构建maven依赖体系 结果如下图所示 6.在构建结果中按ctrl+F 7.输入报错的jar包的名字 8.选中一个点进去

  • 解决Mybatis-plus和pagehelper依赖冲突的方法示例

    简介 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 Mybati-plus本身自带分页功能,但是我个人一直是使用pagehelper进行分页,所以在pom中添加了pagehelper依赖,但是运行项目后发现jar包冲突,面对冲突我们应该怎么解决它呢,看完如下内容便可轻松解决 先看依赖 <!-- mbatis-plus --> &

  • 关于Maven依赖冲突解决之exclusions

    目录 Maven依赖冲突解决之exclusions 1. 背景 2. 解决方式 场景 解决方式 Maven解决依赖冲突总结 实例分析 解决办法 命令分析 小试牛刀 Maven依赖冲突解决之exclusions 1. 背景 作为java生态下开发者,往往需要使用大量线程的第三方库,一般都是以jar包形式存在. maven作为事实上主流的jar包依赖管理工具,Idea和Eclipse都支持创建maven工程来管理jar包依赖. 使用maven进行jar包依赖管理时,maven会自行管理jar包及其依

  • 解决springboot依赖包中报错unknown的问题

    目录 springboot依赖包中报错unknown 1.先说说版本吧 2.问题描述 3.找到redis的jar版本 4.分享一个小技巧 springboot项目报错UnknownError springboot依赖包中报错unknown 1.先说说版本吧 springboot使用2.0.3版本 2.问题描述 直接上图片: 原先除了redis报错以外,还有commons-beanuitls也报一样的问题,我从本地仓库中将unknown文件夹删除,重新reimport也一样,后来百思不得其姐,决定

  • Mybatis-plus与Mybatis依赖冲突问题解决方法

    错误描述 An attempt was made to call a method that does not exist. The attempt was made from the following location: com.baomidou.mybatisplus.core.MybatisMapperAnnotationBuilder.getLanguageDriver(MybatisMapperAnnotationBuilder.java:369) The following met

随机推荐