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行代码,都不觉得累了~!看这里!看这里!看哪里! 想依赖那里就依那里!妈妈再也不用担心我的学习了!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IE浏览器开发人员工具怎么使用

大家都知道IE是Windows系统默认的浏览器&#xff0c;功能齐全&#xff0c;方便用户操作&#xff0c;也为开发人员提供了许多便捷。为了帮助开发人员更好的调试浏览器&#xff0c;IE为大家准备了强大的开发人员工具&#xff0c;要怎么使用这个功能呢?下面小编来给大家讲讲。 操…

Intellij Idea的使用之svn篇

记一下idea的svn使用有图超详细 根据在eclipse里使用svn的经验琢磨了一下idea,现把idea下svn的使用方法记录如下 主要分为几个功能来介绍 第一个功能当然是把远程的svn代码拉到我们本地 下面的多出了一个svn的窗口&#xff0c;在左边有加号可以添加一个svn的库 输入svn的地…

爱奇艺PPS如何登陆账号

爱奇艺PPS是一个非常好的网络看电影的播放器。下面小编告诉大家如何登陆爱奇艺PPS&#xff0c;因为只有登陆才能获取特权 爱奇艺PPS如何登陆账号 1、首先打开爱奇艺PPS播放器 爱奇艺PPS如何登陆账号 2、点击左上角的爱奇艺这几个绿字 爱奇艺PPS如何登陆账号 3、点击弹出来…

Intellij IDEA 的使用

前言&#xff1a; 为什么我要选择intellij idea呢&#xff1f;原因有三 1.以前公司的项目 在myeclipse10中不稳定 myeclipse说不定什么时候就崩溃卡死了 而intellij很稳定 2.界面高端洋气 用我朋友的话说 看着跟搞苹果开发一样 3.项目的支持上比较好 基本上web项目都可以导…

笔记本win7系统关闭触摸板功能的方法

大家都知道win7笔记本电脑上有触摸面板&#xff0c;不过很多人都是只用鼠标的&#xff0c;而且触摸板还会影响操作&#xff0c;那么笔记本win7系统怎么关闭触摸板功能呢?下面一起来看看笔记本win7系统关闭触摸板功能的方法吧。 笔记本win7系统关闭触摸板功能的方法 1、打开电…

Eclipse设置、调优、使用

eclipse调优一般在不对eclipse进行相关设置的时候&#xff0c;使用eclipse总是会觉得启动好慢&#xff0c;用起来好卡&#xff0c;其实只要对eclipse的相关参数进行一些配置&#xff0c;就会有很大的改善。 加快启动速度1.在eclipse启动的时候&#xff0c;它总是会搜索让其运行…

怎么在pptv里下载电视剧

手机已越来越方便,尤其对爱看电视剧的我们,更方便了,想看什么可以一直看完,不用一天几集等的着急了,那用手机该怎么下载电视剧呢,让我们一起来学校下吧! 1、从主菜单上找到pptv,如果没有下载可以从安卓市场里直接下载个.下载好的就直接点击进入. 怎么在pptv里下载电视剧 2、…

Git上传代码到coding.net

coding.net是一个代码托管和项目管理的平台&#xff0c;相当于国外的Github。使用了一段时间&#xff0c;感觉挺方便的&#xff0c;使用起来比Github还要简单点。 git的下载和安装就且不介绍了&#xff0c;百度一下&#xff0c;windows、mac版的都能顺利的下载下来。下面简单介…

2345浏览器兼容模式怎么设置

2345浏览器兼容模式设置流程 1、打开浏览器&#xff0c;然后将鼠标放上去&#xff0c;就会显示浏览器的模式&#xff0c;用户可以点击地址旁边的图标&#xff0c;不是兼容模式就点击替换; 2、进入浏览器菜单&#xff0c;进入高级设置&#xff0c;选择自己想要的模式&#xff…

Guava 实用操作集合

guava 是 google 几个java核心类库的集合,包括集合、缓存、原生类型、并发、常用注解、基本字符串操作和I/O等等。 大家平时经常遇到某些相同的问题&#xff0c;自己写代码也都能解决。但是久而久之会感觉到很痛苦&#xff0c;因为我们一而再&#xff0c;再而三的重复发明轮子。…

QQ浏览器如何启用无痕模式

我们在日常浏览网页的时候总会留下浏览记录&#xff0c;同时会产生网页缓存&#xff0c;而别有用心之人就可以通过这些信息窥探到我们的隐私甚至威胁到我们的财产安全&#xff0c;而QQ浏览器为了防止产生浏览记录和网页缓存特地制作了无痕模式&#xff0c;那如何使用无痕模式呢…

Intellj Idea 如何设置类头注释和方法注释

intellj idea 如何设置类头注释和方法注释intellj idea的强大之处就不多说了&#xff0c;相信每个用过它的人都会体会到&#xff0c;但是我们也会被他的复杂搞的晕头转向&#xff0c;尤其刚从eclipse转过来的童鞋&#xff0c;相信刚开始的那段经历都是不堪回首的&#xff0c;我…

傲游浏览器语言怎么切换 傲游浏览器语言切换方法简述

作为一款多功能、个性化、多标签的浏览器产品&#xff0c;傲游浏览器不仅能够有效减少浏览器对系统资源的占用率&#xff0c;还内置了大量的贴心功能&#xff0c;其中便包括浏览器语言切换。那么&#xff0c;傲游浏览器语言要怎么切换呢?不清楚具体步骤的朋友&#xff0c;还不…

Logback介绍及入门

Logback简介 Logback是由log4j创始人设计的又一个开源日志组件。 logback当前分成三个模块&#xff1a;logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API…

怎么开启搜狗高速浏览器的手动升级

搜狗高速浏览器是一款很好用的浏览器软件&#xff0c;随着软件的完善&#xff0c;我们也要对软件进行升级&#xff0c;才能享受更多更优质的功能&#xff0c;我们可以用手动升级来代替提示升级和自动升级所带来的不便&#xff0c;那么&#xff0c;怎么操作呢?下面就由小编来教…

Spring事务配置实例

事务 一个使用 MyBatis-spring 的主要原因是它允许MyBatis 参与到 Spring 的事务管理中。而 不是给 MyBatis 创建一个新的特定的事务管理器,MyBatis-Spring 利用了存在于Spring 中的 DataSourceTransactionManager。 一旦 Spring 的PlatformTransactionManager 配置好了,你可以…

pptv如何绑定邮箱账号

随着社会发展的不断进步&#xff0c;我们要记忆的东西太多了&#xff0c;今天记一个qq账号和密码&#xff0c;明天又记忆一个邮箱账号和密码&#xff0c;可能后天还要记忆一个淘宝账号和密码…&#xff0c;太多的账号和密码&#xff0c;如果设置相同又会被别人盗取&#xff0c;…

Java锁之可重入锁介绍

锁作为并发共享数据&#xff0c;保证一致性的工具&#xff0c;在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利&#xff0c;但是锁的具体性质以及类型却很少被提及。本系列文章将分析JAVA下常见的锁名称以及特性&…

win7系统蓝屏修复工具如何使用

有网友反映自己在使用win7电脑的时候&#xff0c;电脑突发蓝屏情况&#xff0c;不知道是什么原因造成的。这个时候我们可以借助win7蓝屏修复工具查看分析win7蓝屏原因进行对症解决。那么win7蓝屏修复工具怎么使用?下面小编就教下大家win7蓝屏修复工具使用方法。 win7系统蓝屏…

怎样找到win7系统默认的微信缓存文件夹路径

好多小伙伴使用win7系统的电脑版微信的时候会收到很多文件资料&#xff0c;平时可以进入微信直接获取文件&#xff0c;那么当我们碰到断网的情况下如何准确找到这些文件呢?并且如果想对文件默认保存位置做出修改又该如何解决呢?小伙伴不要急&#xff0c;现证小编就教大家怎样…