注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Lable

........................................

 
 
 

日志

 
 

Maven依赖排除 禁止依赖传递 取消依赖的方法  

2016-12-28 14:45:38|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

转载自:http://chwshuang.iteye.com/blog/2069937


    大家都知道Maven的优点是依赖管理,特别是前期使用ANT的开发者都有很多感触。最近要开发一个java工程,定的要使用maven,会使用hadoop和hbase的客户端,而引入一个hadoop-client的jar或者hbase的jar包,会依赖十几个其他的jar包,而这些jar包的功能我又用不上,所以这种依赖反倒成了工程瘦身的负担。关键我还有强迫症,见到这些对工程无用的包,我就抓狂。所以在网上百找千寻,找到了几个方法:

1. 项目间传递

    如果我的当前项目是project1,project1要依赖project2,project1依赖project2的配置中加上<optional>true</optional>,表示依赖可选,

Java代码  
  1. <dependency>  
  2.     <groupId>com.projecct</groupId>  
  3.     <artifactId>project2</artifactId>  
  4.     <version>1.0</version>  
  5.     <scope>compile</scope>  
  6.     <optional>true</optional>  
  7. </dependency>  

 那么以后所有声明依赖project1的项目如果也依赖project2,就必须写手动声明。比如project3依赖project1和project2,如果project3只声明了对project1的依赖,那么project2不会自动加入依赖,需要重新声明对project2的依赖。

 

这种方式排除不了我项目中对第三方jar包所依赖的其他依赖,因为我不可能去修改第三方jar包的pom文件,所以只适合在项目组内部使用。

2. 依赖过滤

(1)单依赖过滤

       同依赖过滤直接处理:可以过滤一个或者多个,如果过滤多个要写多个<exclusion>。这个也解决不了我的问题,或者说解决太麻烦,我那里知道hbase要依赖那些包,记不住。

Java代码  
  1. <dependency>      
  2.      <groupId>org.apache.hbase</groupId>  
  3.      <artifactId>hbase</artifactId>  
  4.      <version>0.94.17</version>   
  5.      <exclusions>    
  6.            <exclusion>        
  7.                 <groupId>commons-logging</groupId>            
  8.                 <artifactId>commons-logging</artifactId>    
  9.            </exclusion>    
  10.      </exclusions>    
  11. </dependency>   

 

(2)多依赖过滤

     把所以依赖都过滤了。手起刀落~啊,世界都安静了。

Java代码  
  1. <dependency>  
  2.     <groupId>org.apache.hbase</groupId>  
  3.     <artifactId>hbase</artifactId>  
  4.     <version>0.94.17</version>  
  5.     <exclusions>  
  6.         <exclusion>  
  7.             <groupId>*</groupId>  
  8.             <artifactId>*</artifactId>  
  9.         </exclusion>  
  10.     </exclusions>  
  11. </dependency>  

 

  评论这张
 
阅读(46)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017