maven下mybatis-plus和pagehelp冲突问题的解决方法

解决 Maven 下 MyBatis-Plus 和 PageHelper 冲突问题的方法如下:

问题描述

在使用 Maven 构建项目时,如果引入了 MyBatis-Plus 和 PageHelper 两个依赖,会因为它们都依赖于 MyBatis 造成冲突,导致编译出错。

具体来说,MyBatis-Plus 依赖 MyBatis 3.5.x,而 PageHelper 依赖的是 MyBatis 3.4.x 版本,两者不兼容。

解决方法

  1. 使用 Exclusions 排除依赖冲突

在 pom.xml 文件中,排除 PageHelper 的 MyBatis 依赖,仅保留 MyBatis-Plus 的依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
    <exclusions>
        <exclusion>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.3.0</version>
</dependency>

这样可以解决依赖冲突问题,但有可能会出现 PageHelper 不兼容 MyBatis-Plus 的情况。

  1. 使用正确版本的 PageHelper

根据官方文档[1],MyBatis-Plus 3.4.x 版本兼容 PageHelper 5.1.x 版本,因此可以将 PageHelper 的版本调整为 5.1.x,与 MyBatis-Plus 一致。

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>5.1.11</version>
</dependency>

这样就不会出现依赖冲突的问题了。

示例

在 pom.xml 文件中添加 MyBatis-Plus 和 PageHelper 的依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.3.0</version>
</dependency>

编译时,出现如下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project demo: Compilation failure: Compilation failure:
[ERROR] /Users/user/Documents/Workspace/demo/src/main/java/com/example/demo/controller/DemoController.java:[10,32] package com.github.pagehelper.page does not exist

这是因为 PageHelper 1.3.0 版本依赖的 MyBatis 版本与 MyBatis-Plus 不兼容,需要解决依赖冲突问题。

将 PageHelper 的版本调整为 5.1.11:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>5.1.11</version>
</dependency>

重新编译即可通过。

另外,如果想将 PageHelper 的 MyBatis 依赖排除,也可以使用以下配置:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
    <exclusions>
        <exclusion>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.3.0</version>
</dependency>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.7</version>
</dependency>

其中,最后添加了 MyBatis 3.5.7 的依赖,解决 PageHelper 和 MyBatis-Plus 不兼容的问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:maven下mybatis-plus和pagehelp冲突问题的解决方法 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Android使用广播(BroadCast)实现强制下线的方法

    Android使用广播(Broadcast)实现强制下线的方法攻略 在Android开发中,我们可以使用广播(Broadcast)来实现强制下线的功能。下面是一个详细的攻略,包含了两个示例说明。 步骤一:创建广播接收器 首先,我们需要创建一个广播接收器(Broadcast Receiver),用于接收发送的广播消息。在这个接收器中,我们可以定义需要执行的操作…

    other 2023年9月7日
    00
  • pythonsizeof函数

    当然,我可以为您提供有关“python sizeof函数”的攻略,以下是详细说明: Python sizeof函数 在Python中,sizeof()函数用于返回对象字节大小。该函数可以用于任何对象,包括内置类型和用户定义的对象。在本教程中,我们将介绍如何使用sizeof()函数以及它的用法。 语法 sizeof()函数的语法如下: import sys s…

    other 2023年5月7日
    00
  • C++二叉树的创建及遍历详情

    C++二叉树的创建及遍历详情 什么是二叉树 二叉树是一种树形结构,它特别的地方在于,每个节点最多拥有两个子节点,因此叫做二叉树。 二叉树的一个重要性质是,我们可以使用递归的方式进行遍历。 二叉树的构造 可以使用结构体来表示二叉树中的每个节点: struct Node { int value; Node* left_child; Node* right_chi…

    other 2023年6月27日
    00
  • Vue3封装登录功能的两种实现

    下面我会详细介绍如何使用Vue3封装登录功能以及两种实现方式。 1. 创建登录组件 首先,我们需要创建一个登录组件,在该组件中编写登录所需的页面布局和逻辑代码。可以使用Vue的template和script标签来创建组件,并在组件中通过v-model指令来绑定输入框中的值。 <template> <div> <h2>登录&…

    other 2023年6月27日
    00
  • layui递归实现动态左侧菜单

    让我们来讲解如何使用 layui 递归实现动态左侧菜单。 什么是递归 在讲解 layui 递归实现动态左侧菜单之前,我们有必要先了解什么是递归。在计算机科学中,递归指的是一个函数可以调用自身的编程技巧,通常用来解决和数据结构有关的问题。递归函数通常具有以下特点: 至少有一个条件判断语句(递归的结束条件)。 调用自己函数本身。 步骤 接下来我们按照以下步骤来实…

    other 2023年6月27日
    00
  • 如何在android中的textview中换行

    在Android中,可以使用换行符(\n)在TextView中换行。下面是两个示例说明: 示例一:在XML布局文件中使用换行符 <TextView android:id="@+id/my_text_view" android:layout_width="wrap_content" android:layout_h…

    other 2023年5月8日
    00
  • Golang实现将视频按照时间维度剪切的工具

    当我们谈到视频处理时,一个常见的需求是根据时间维度对视频进行剪切,这可以用于在大型视频项目中选出一部分精彩的片段,或者在视频编辑软件中编辑某个视频的一部分。在这里,我们将介绍如何使用 Golang 实现视频剪切的工具。 工具基本原理 视频剪切的基本原理是:使用视频处理库来解析视频文件,然后在指定时间段内进行截取。在 Golang 中,我们可以使用 FFMPE…

    other 2023年6月27日
    00
  • 03-Windows Server 2016 IIS的安装与配置

    Spring Boot是一款基于Spring框架的快速开发框架,提供了丰富的功能和工具,可以帮助开发人员快速构建Web应用程序。本文将介绍Spring Boot的@Negative注解的作用和使用方法的完整攻略,包括注解的作用、使用方法和示例说明。 1. @Negative注解的作用 @Negative注解是Spring Boot框架中的一个注解,用于验证数…

    other 2023年5月5日
    00
合作推广
合作推广
分享本页
返回顶部