maven排除依赖冲突问题
生活随笔
收集整理的這篇文章主要介紹了
maven排除依赖冲突问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天碰到了一個詭異的問題。
jedis版本原來用的是2.9.0,想要替換成3.0.1,涉及到父pom,搞了半天,試了各種辦法,版本都改不過來。
項目依賴的始終是2.9.0,并且從當前pom到父pom,都找不到在哪里指定了2.9.0。
最終,采取下述方法1,問題解決。
maven依賴沖突一般有四種解決方式,按照優(yōu)先級(從高到低)介紹:
1. 依賴管理(所有版本鎖定)
在配置文件pom.xml中先聲明要使用哪個版本的相應jar包,聲明后其他版本的jar包一律不依賴
<properties> <spring.version>4.2.4.RELEASE</spring.version> <hibernate.version>5.0.7.Final</hibernate.version> <struts.version>2.3.24</struts.version> </properties> </properties> <!-- 鎖定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId><version>${spring.version}</version> </dependency> </dependencies></dependencyManagement>如果是應用在同一個工程內有多個模塊時,提取出一個父親模塊來管理子模塊共同依賴的 jar 包版本,則子模塊相同jar包不需要指定version信息
2. 移除依賴
如果我們不想通過 A->B->C>D1 引入 D1 的話,那么我們在聲明引入 A 的時候將 D1 排除掉
舉個例子:將 zookeeper 的 jline 依賴排除
3. 第一聲明優(yōu)先原則
在pom.xml配置文件中,如果有兩個名稱相同版本不同的依賴聲明,那么先寫的會生效。
所以,先聲明自己要用的版本的jar包即可。
4. 最短路徑優(yōu)先
直接依賴優(yōu)先于傳遞依賴,如果傳遞依賴的jar包版本沖突了,那么可以自己聲明一個指定版本的依賴jar,即可解決沖突。
總結
以上是生活随笔為你收集整理的maven排除依赖冲突问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 布洛芬缓释胶囊退烧吗
- 下一篇: 虾青素好不好