当前位置: 首页 > news >正文

maven如何解决jar包依赖冲突

maven如何解决jar包依赖冲突

    • 1.背景
    • 2.报错信息
    • 3.解决思路
      • 3.1.查找jsqlparser冲突
      • 3.2.发现冲突
      • 3.2.解决冲突
    • 4.Dromara Warm-Flow

1.背景

在ruoyi-vue项目集成Warm-Flow过程中,需要把mybatis升级为mybatis-plus,按照Warm-Flow常见问题中升级过程,遇到一个依赖冲突的问题,导致启动报错。

2.报错信息

报错信息比较多,但是要抓住重点,关键就在java.lang.NoClassDefFoundError: net/sf/jsqlparser/statement/select/SelectItem,这里意思就是没有找到SelectItem
类,他是在com.github.jsqlparser包里面的,但是正常来说肯定是能找到的,毕竟是组件内部自己调用的,肯定是测试通过了的。所以我们就大胆猜测,是由于一个jar引入了多个版本,生效的版本没有这个类,没生效的有。

Caused by: java.lang.NoClassDefFoundError: net/sf/jsqlparser/statement/select/SelectItemat com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.<clinit>(PaginationInnerInterceptor.java:69)at com.ruoyi.framework.config.MybatisPlusConfig.paginationInnerInterceptor(MybatisPlusConfig.java:39)at com.ruoyi.framework.config.MybatisPlusConfig.mybatisPlusInterceptor(MybatisPlusConfig.java:26)at com.ruoyi.framework.config.MybatisPlusConfig$$EnhancerBySpringCGLIB$$3f80bf90.CGLIB$mybatisPlusInterceptor$2(<generated>)at com.ruoyi.framework.config.MybatisPlusConfig$$EnhancerBySpringCGLIB$$3f80bf90$$FastClassBySpringCGLIB$$e2db53ed.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)at com.ruoyi.framework.config.MybatisPlusConfig$$EnhancerBySpringCGLIB$$3f80bf90.mybatisPlusInterceptor(<generated>)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)... 96 common frames omitted
Caused by: java.lang.ClassNotFoundException: net.sf.jsqlparser.statement.select.SelectItemat java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 109 common frames omitted

3.解决思路

3.1.查找jsqlparser冲突

  • 通过idea的Maven Helper插件查看有哪些冲突

3.2.发现冲突

  • 我们能看到jsqlparser存在多个版本,通过快捷键ctrl+n快捷得知,4.5版本是没有SelectItem类的,4.9才有
  • 所以我们需要保留4.9,排除4.5

3.2.解决冲突

  • 我们找到引入pagehelper-spring-boot-starterjar包的地方,排除低版本
        <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><exclusions><exclusion><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId></exclusion></exclusions></dependency>

4.Dromara Warm-Flow

是不是通过WarmFlow工作流可以很简单的管理你的审批业务呢,还不快快加入v

另外Dromara组织还有大量好用的项目,欢迎评鉴

相关文章:

  • Maven 多仓库和多镜像配置
  • 红宝书第四十七讲:Node.js服务器框架解析:Express vs Koa 完全指南
  • 408 计算机网络 知识点记忆(9)
  • 【今日三题】添加字符(暴力枚举) / 数组变换(位运算) / 装箱问题(01背包)
  • 阿里云短信服务与ASP.NET对接实例
  • 21、c#中“?”的用途
  • TDengine 语言连接器(R语言)
  • 【QT】常用控件 【多元素类 | 容器类 | 布局类】
  • 【n8n docker 部署的代理问题】解决n8n部署无法访问openai等外国大模型厂商的api
  • 入门-C编程基础部分:5、变量
  • MyBatis-Plus 中BaseMapper接口是如何加速微服务内部开发的?
  • 在ubuntu20.04+系统部署VUE及Django项目的过程记录——以腾讯云为例
  • HADOOP——序列化
  • 高并发多级缓存架构实现思路
  • 施磊老师基于muduo网络库的集群聊天服务器(一)
  • 微软承认Win11出现极端错误,只能强制关机或重装系统
  • typescript html input无法输入解决办法
  • 《Not All Tokens Are What You Need for Pretraining》全文翻译
  • 二进制和docker两种方式部署Apache pulsar(standalone)
  • Flink运行时架构
  • 手机网站自动跳转代码/销售技巧和话术
  • 免费建立小程序网站/自己做网站如何赚钱
  • 政府网站html5/怎么接推广
  • 帮别人做网站赚钱6/网店营销策划方案范文
  • 爱采购网/seo排名优化的网站
  • 河南网站建设设计/百度网页版网址