转自:https://www.cnblogs.com/duanxz/p/6084494.html

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

1. 项目间传递

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

  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要依赖那些包,记不住。

  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)多依赖过滤

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

  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>

最新文章

  1. php 去掉字符串的最后一个字符
  2. WPF中找不到Image或者Image不是Drawing系列
  3. JavaScript 中2个等号与3个等号的区别
  4. IUYYLIUIU
  5. 【codevs1036】商务旅行 LCA 倍增
  6. Fragment的创建以及与activity的参数传递
  7. RAD DELPHI XE5的android开发环境配置
  8. Linux msgsnd : invalid argument
  9. 三年PS经验
  10. Java基础类型自动装箱(autoboxing)
  11. Hadoop RCFile存储格式详解(源码分析、代码示例)
  12. 对sql进行分页处理(Oracle版)
  13. PAT 乙级 1004. 成绩排名
  14. UVA 1193 区间相关(greedy)
  15. 【PHP】最详细PHP从入门到精通(四)——PHP中的字符串
  16. 如何在Django中配置MySQL数据库
  17. Codeblock代码提示自动补全(包括结构体成员)
  18. linux redis 主从复制
  19. Element-ui框架checkbox复选框回显
  20. useful urls

热门文章

  1. POJ - 3842 An Industrial Spy dfs(水)
  2. SGU 461 Wiki Lists dfs
  3. [ Java ] [ Eclipse ] 导出/导入Eclipse的workspace配置(备份Eclipse配置)
  4. epson 630打印机驱动安装不上
  5. ZOJ 3435 Ideal Puzzle Bobble 莫比乌斯反演
  6. Supervisor 的安装与配置教程
  7. this对象的理解
  8. HTML5吃豆豆游戏开发实战(一)使用Canvas绘制游戏主角
  9. Apache shiro 笔记整理之web整合一
  10. .Net MVC小尝试