Maven依赖排除 禁止依赖传递 取消依赖的方法
生活随笔
收集整理的這篇文章主要介紹了
Maven依赖排除 禁止依赖传递 取消依赖的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ?大家都知道Maven的優點是依賴管理,特別是前期使用ANT的開發者都有很多感觸。最近要開發一個java工程,定的要使用maven,會使用hadoop和hbase的客戶端,而引入一個hadoop-client的jar或者hbase的jar包,會依賴十幾個其他的jar包,而這些jar包的功能我又用不上,所以這種依賴反倒成了工程瘦身的負擔。關鍵我還有強迫癥,見到這些對工程無用的包,我就抓狂。所以在網上百找千尋,找到了幾個方法:
1. 項目間傳遞
??? 如果我的當前項目是project1,project1要依賴project2,project1依賴project2的配置中加上<optional>true</optional>,表示依賴可選。
<dependency><groupId>com.projecct</groupId><artifactId>project2</artifactId><version>1.0</version><scope>compile</scope><optional>true</optional> </dependency> ? ? 那么以后所有聲明依賴project1的項目如果也依賴project2,就必須寫手動聲明。比如project3依賴project1和project2,如果project3只聲明了對project1的依賴,那么project2不會自動加入依賴,需要重新聲明對project2的依賴。
這種方式排除不了我項目中對第三方jar包所依賴的其他依賴,因為我不可能去修改第三方jar包的pom文件,所以只適合在項目組內部使用。
2. 依賴過濾
(1)單依賴過濾
?????? 同依賴過濾直接處理:可以過濾一個或者多個,如果過濾多個要寫多個<exclusion>。這個也解決不了我的問題,或者說解決太麻煩,我那里知道hbase要依賴那些包,記不住。
<dependency> <groupId>org.apache.hbase</groupId><artifactId>hbase</artifactId><version>0.94.17</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency>(2)多依賴過濾
? ? 把所以依賴都過濾了。手起刀落~啊,世界都安靜了。
<dependency><groupId>org.apache.hbase</groupId><artifactId>hbase</artifactId><version>0.94.17</version><exclusions><exclusion><groupId>*</groupId><artifactId>*</artifactId></exclusion></exclusions> </dependency> 自從搞定了這個依賴過濾啊,我腰不酸,腿不疼了,手不抖了,一口氣啊,5000行代碼,都不覺得累了~!看這里!看這里!看哪里! 想依賴那里就依那里!媽媽再也不用擔心我的學習了!
總結
以上是生活随笔為你收集整理的Maven依赖排除 禁止依赖传递 取消依赖的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C指针原理(36)-C快速入门
- 下一篇: 前台等待事件 oracle,Oracle