shade解決mybatis包沖突問題
目前有一個項目,A是第三方應(yīng)用,代碼不公開,不能修改,使用的是mybatis plugs3.3.1,而當(dāng)前項目是我們自己的B,它需要用到A里的方法,B里mybatis plugs版本是2.3,目前在使用過程中出現(xiàn)了問題,這兩個版本的有些方法,注解都發(fā)生了很大的變化 :
mybatis 3.x BaseMapper注解的位置:import com.baomidou.mybatisplus.core.mapper.BaseMapper;
mybatis 2.x BaseMapper注解的位置:import com.baomidou.mybatisplus.mapper.BaseMapper;
這兩個版本對于很多注解,接口,方法,類都是不同的,兩個版本無法兼容,當(dāng)我們項目引用A項目之后,就出現(xiàn)A版本里使用mybatis的一些錯誤,就是方法,類未找到的錯誤。
shade插件進(jìn)行解決
我們需要引用a-shade這個項目,它來依賴a,然后在它里使用shade插件對a里的mybatis進(jìn)行重命名,再由b直接引用a-shade,這時 a里的方法也就有了,并且引用了mybatis的地方都換成了shade開頭的包了
實現(xiàn)圖
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
打包發(fā)布后,B項目直接使用a-shade這個包即可,其它代碼不需要修改
<dependency> <groupId>com.lind</groupId> <artifactId>a-shade</artifactId> <version>1.0.1</version> </dependency>
總結(jié)
到此這篇關(guān)于shade解決mybatis包沖突問題的文章就介紹到這了,更多相關(guān)shade mybatis包沖突內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java日期時間類(Date、DateFormat、Calendar)解析
這篇文章主要介紹了Java日期時間類(Date、DateFormat、Calendar)解析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06Java中stream處理中map與flatMap的比較和使用案例
這篇文章主要介紹了Java中stream處理中map與flatMap的比較和使用案例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Java實現(xiàn)的生成二維碼和解析二維碼URL操作示例
這篇文章主要介紹了Java實現(xiàn)的生成二維碼和解析二維碼URL操作,結(jié)合實例形式分析了Java創(chuàng)建與解析二維碼,以及文件讀寫等相關(guān)操作技巧,需要的朋友可以參考下2018-07-07idea運(yùn)行java的配置詳細(xì)教程(包含maven,mysql下載配置)
程序員們在開發(fā)的時候,一定會用到Intellij?IDEA這個集成開發(fā)環(huán)境,這篇文章主要給大家介紹了關(guān)于idea運(yùn)行java的配置(包含maven,mysql下載配置)的相關(guān)資料,需要的朋友可以參考下2024-05-05如何自定義feign調(diào)用實現(xiàn)hystrix超時、異常熔斷
這篇文章主要介紹了自定義feign調(diào)用實現(xiàn)hystrix超時、異常熔斷的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06Java+Swing實現(xiàn)醫(yī)院管理系統(tǒng)的完整代碼
這篇文章主要介紹了Java+Swing實現(xiàn)醫(yī)院管理系統(tǒng)的完整代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05