shade解決mybatis包沖突問題及項(xiàng)目引用的方法
之前寫過shade解決mybatis包沖突的文章,主要講了如何為一個(gè)第三方包去打一個(gè)shade包,然后它可以解決相同包的不同版本之間的沖突問題;而今天主要說一下在項(xiàng)目里如何引用這個(gè)包。
1 如果只是使用包里的資源,而不使用這個(gè)包的依賴包,需要這樣引用即可
<dependency>
<groupId>com.lind</groupId>
<artifactId>a-start-test-depend-shade</artifactId>
<version>1.0.4</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/a-start-test-depend-shade-1.0.4.jar</systemPath>
</dependency>
2 如果在引用包里,還需要使用它的依賴包,需要把system去掉
<dependency>
<groupId>com.lind</groupId>
<artifactId>a-start-test-depend-shade</artifactId>
<version>1.0.4</version>
<systemPath>${project.basedir}/src/main/resources/a-start-test-depend-shade-1.0.4.jar</systemPath>
</dependency>
3 注意:如果你的shade項(xiàng)目和你的當(dāng)前項(xiàng)目在一起的話,可能能有問題

你可以把shade項(xiàng)目打完jar包之后,移除module,然后再試一下,就可以看到你的jar包里的對象被shade了

4 pom配置文件里的scope是作用域的意思,下面介紹一下幾種scope
- compile:默認(rèn)值 他表示被依賴項(xiàng)目需要參與當(dāng)前項(xiàng)目的編譯,還有后續(xù)的測試,運(yùn)行周期也參與其中,是一個(gè)比較強(qiáng)的依賴。打包的時(shí)候通常需要包含進(jìn)去
- test:依賴項(xiàng)目僅僅參與測試相關(guān)的工作,包括測試代碼的編譯和執(zhí)行,不會被打包,例如:junit
- runtime:表示被依賴項(xiàng)目無需參與項(xiàng)目的編譯,不過后期的測試和運(yùn)行周期需要其參與。與compile相比,跳過了編譯而已。例如JDBC驅(qū)動,適用運(yùn)行和測試階段
- provided:打包的時(shí)候可以不用包進(jìn)去,別的設(shè)施會提供。事實(shí)上該依賴?yán)碚撋峡梢詤⑴c編譯,測試,運(yùn)行等周期。相當(dāng)于compile,但是打包階段做了exclude操作
- system:從參與度來說,和provided相同,不過被依賴項(xiàng)不會從maven倉庫下載,而是從本地文件系統(tǒng)拿。需要添加systemPath的屬性來定義路徑
總結(jié)
到此這篇關(guān)于shade解決mybatis包沖突問題及項(xiàng)目引用的方法的文章就介紹到這了,更多相關(guān)shade解決mybatis包沖突內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot集成RabbitMQ并驗(yàn)證五種消息模型
RabbitMQ 提供了5種常用消息模型,本文主要介紹了Springboot集成RabbitMQ并驗(yàn)證五種消息模型,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
java字符轉(zhuǎn)碼的三種方法總結(jié)及實(shí)例
這篇文章主要介紹了 java字符轉(zhuǎn)碼的三種方法總結(jié)及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-03-03
Java服務(wù)端服務(wù)監(jiān)控:Prometheus與Spring Boot Actuator的集成方式
本文介紹了如何將Prometheus與SpringBootActuator集成,實(shí)現(xiàn)對Java服務(wù)端應(yīng)用的監(jiān)控,通過集成,可以利用Prometheus的強(qiáng)大監(jiān)控能力,及時(shí)發(fā)現(xiàn)和解決性能問題2024-12-12
Spring IoC學(xué)習(xí)之ApplicationContext中refresh過程詳解
這篇文章主要給大家介紹了關(guān)于Spring IoC學(xué)習(xí)之ApplicationContext中refresh過程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
springboot打印接口調(diào)用日志的實(shí)例
這篇文章主要介紹了springboot打印接口調(diào)用日志的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
Java String源碼分析并介紹Sting 為什么不可變
這篇文章主要介紹了Java String源碼分析并介紹Sting 為什么不可變的相關(guān)資料,需要的朋友可以參考下2017-02-02

