shade解決mybatis包沖突問(wèn)題
目前有一個(gè)項(xiàng)目,A是第三方應(yīng)用,代碼不公開(kāi),不能修改,使用的是mybatis plugs3.3.1,而當(dāng)前項(xiàng)目是我們自己的B,它需要用到A里的方法,B里mybatis plugs版本是2.3,目前在使用過(guò)程中出現(xiàn)了問(wèn)題,這兩個(gè)版本的有些方法,注解都發(fā)生了很大的變化 :
mybatis 3.x BaseMapper注解的位置:import com.baomidou.mybatisplus.core.mapper.BaseMapper;
mybatis 2.x BaseMapper注解的位置:import com.baomidou.mybatisplus.mapper.BaseMapper;
這兩個(gè)版本對(duì)于很多注解,接口,方法,類都是不同的,兩個(gè)版本無(wú)法兼容,當(dāng)我們項(xiàng)目引用A項(xiàng)目之后,就出現(xiàn)A版本里使用mybatis的一些錯(cuò)誤,就是方法,類未找到的錯(cuò)誤。
shade插件進(jìn)行解決
我們需要引用a-shade這個(gè)項(xiàng)目,它來(lái)依賴a,然后在它里使用shade插件對(duì)a里的mybatis進(jìn)行重命名,再由b直接引用a-shade,這時(shí) a里的方法也就有了,并且引用了mybatis的地方都換成了shade開(kāi)頭的包了

實(shí)現(xiàn)圖

a-shade.jar反編譯之后

a-shade項(xiàng)目的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
打包發(fā)布后,B項(xiàng)目直接使用a-shade這個(gè)包即可,其它代碼不需要修改
<dependency> <groupId>com.lind</groupId> <artifactId>a-shade</artifactId> <version>1.0.1</version> </dependency>
總結(jié)
到此這篇關(guān)于shade解決mybatis包沖突問(wèn)題的文章就介紹到這了,更多相關(guān)shade mybatis包沖突內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot整合spring-data-redis遇到的坑
使用springboot整合redis,使用默認(rèn)的序列化配置,然后使用redis-client去查詢時(shí)查詢不到相應(yīng)的key.問(wèn)題出在哪,怎么解決呢?下面小編給大家?guī)?lái)了springboot整合spring-data-redis遇到的坑,需要的的朋友參考下吧2017-04-04
java中 String和StringBuffer的區(qū)別實(shí)例詳解
這篇文章主要介紹了java中 String和StringBuffer的區(qū)別實(shí)例詳解的相關(guān)資料,一個(gè)小的例子,來(lái)測(cè)試String和StringBuffer在時(shí)間和空間使用上的差別,需要的朋友可以參考下2017-04-04
Java swing讀取txt文件實(shí)現(xiàn)學(xué)生考試系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java swing讀取txt文件實(shí)現(xiàn)學(xué)生考試系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06
使用 Spring Boot 實(shí)現(xiàn) WebSocket實(shí)時(shí)通信
本篇文章主要介紹了使用 Spring Boot 實(shí)現(xiàn) WebSocket實(shí)時(shí)通信,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
SpringBoot項(xiàng)目中自定義Banner的技術(shù)指南
在 Spring Boot 項(xiàng)目中,當(dāng)應(yīng)用啟動(dòng)時(shí)會(huì)顯示默認(rèn)的 Spring 標(biāo)志和版本信息,定制化的啟動(dòng) Banner 不僅可以美化應(yīng)用,甚至可以提供一些關(guān)鍵信息,本文將介紹如何在 Spring Boot 項(xiàng)目中自定義啟動(dòng) Banner,需要的朋友可以參考下2025-03-03
Java游戲俄羅斯方塊的實(shí)現(xiàn)實(shí)例
這篇文章主要介紹了Java游戲俄羅斯方塊的實(shí)現(xiàn)實(shí)例的相關(guān)資料,這里實(shí)現(xiàn)簡(jiǎn)單的俄羅斯方塊幫助大家學(xué)習(xí)理解基礎(chǔ)知識(shí),需要的朋友可以參考下2017-08-08

