shade解决mybatis包冲突问题

 更新时间:2020年08月03日 11:14:00   作者:张占岭  
这篇文章主要介绍了shade解决mybatis包冲突问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

目前有一个项目,A是第三方应用,代码不公开,不能修改,使用的是mybatis plugs3.3.1,而当前项目是我们自己的B,它需要用到A里的方法,B里mybatis plugs版本是2.3,目前在使用过程中出现了问题,这两个版本的有些方法,注解都发生了很大的变化 :

mybatis 3.x BaseMapper注解的位置:import com.baomidou.mybatisplus.core.mapper.BaseMapper;
mybatis 2.x BaseMapper注解的位置:import com.baomidou.mybatisplus.mapper.BaseMapper;
这两个版本对于很多注解,接口,方法,类都是不同的,两个版本无法兼容,当我们项目引用A项目之后,就出现A版本里使用mybatis的一些错误,就是方法,类未找到的错误。

shade插件进行解决

我们需要引用a-shade这个项目,它来依赖a,然后在它里使用shade插件对a里的mybatis进行重命名,再由b直接引用a-shade,这时 a里的方法也就有了,并且引用了mybatis的地方都换成了shade开头的包了

实现图

a-shade.jar反编译之后

a-shade项目的shade代码

 <artifactId>a-service-shade</artifactId>
 <dependencies>
 <dependency>
  <groupId>com.lind</groupId>
  <artifactId>a-service</artifactId>
  <version>1.0.0</version>
 </dependency>
 </dependencies>

 <build>
 <plugins>
  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-shade-plugin</artifactId>
  <version>3.2.1</version>

  <executions>
   <execution>
   <phase>package</phase>
   <goals>
    <goal>shade</goal>
   </goals>
   <configuration>
    <!-- 不生成dependency-reduced-pom.xml-->
    <createDependencyReducedPom>false</createDependencyReducedPom>
    <relocations>
    <relocation>
     <pattern>com.baomidou</pattern>
     <shadedPattern>shade.com.baomidou</shadedPattern>
    </relocation>
    </relocations>
   </configuration>
   </execution>
  </executions>
  </plugin>
 </plugins>
 </build>

引用a-shade

打包发布后,B项目直接使用a-shade这个包即可,其它代码不需要修改

 <dependency>
 <groupId>com.lind</groupId>
 <artifactId>a-shade</artifactId>
 <version>1.0.1</version>
 </dependency>

总结

到此这篇关于shade解决mybatis包冲突问题的文章就介绍到这了,更多相关shade mybatis包冲突内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Java语言将XML转为PDF的方法

    使用Java语言将XML转为PDF的方法

    这篇文章主要介绍了使用Java语言将XML转为PDF的方法,本文将介绍通过Java代码来实现该格式转换的方法,需要的朋友可以参考下
    2022-03-03
  • Java日期时间类(Date、DateFormat、Calendar)解析

    Java日期时间类(Date、DateFormat、Calendar)解析

    这篇文章主要介绍了Java日期时间类(Date、DateFormat、Calendar)解析,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • Java中stream处理中map与flatMap的比较和使用案例

    Java中stream处理中map与flatMap的比较和使用案例

    这篇文章主要介绍了Java中stream处理中map与flatMap的比较和使用案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Java 异常的知识整理

    Java 异常的知识整理

    这篇文章主要介绍了Java 异常的知识整理的相关资料,需要的朋友可以参考下
    2017-07-07
  • Java实现的生成二维码和解析二维码URL操作示例

    Java实现的生成二维码和解析二维码URL操作示例

    这篇文章主要介绍了Java实现的生成二维码和解析二维码URL操作,结合实例形式分析了Java创建与解析二维码,以及文件读写等相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • idea运行java的配置详细教程(包含maven,mysql下载配置)

    idea运行java的配置详细教程(包含maven,mysql下载配置)

    程序员们在开发的时候,一定会用到Intellij IDEA这个集成开发环境,这篇文章主要给大家介绍了关于idea运行java的配置(包含maven,mysql下载配置)的相关资料,需要的朋友可以参考下
    2024-05-05
  • Java编程思想对象的容纳实例详解

    Java编程思想对象的容纳实例详解

    这篇文章主要介绍了Java编程思想对象的容纳实例详解,内容比较详细,涵盖的东西也比较多,具有参考价值,需要的朋友了解下。
    2017-09-09
  • 如何自定义feign调用实现hystrix超时、异常熔断

    如何自定义feign调用实现hystrix超时、异常熔断

    这篇文章主要介绍了自定义feign调用实现hystrix超时、异常熔断的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java+Swing实现医院管理系统的完整代码

    Java+Swing实现医院管理系统的完整代码

    这篇文章主要介绍了Java+Swing实现医院管理系统的完整代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • Spring中的@Qualifier注解详解

    Spring中的@Qualifier注解详解

    这篇文章主要介绍了Spring中的@Qualifier注解详解,spring @Autowire 的注解默认是按类型注入bean,本文将对其使用方法进行说明,需要的朋友可以参考下
    2023-11-11

最新评论