10.Maven依赖排除 禁止依赖传递 取消依赖的方法
2024-08-30 22:02:21
转自: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>,表示依赖可选,
- <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>
最新文章
- php 去掉字符串的最后一个字符
- WPF中找不到Image或者Image不是Drawing系列
- JavaScript 中2个等号与3个等号的区别
- IUYYLIUIU
- 【codevs1036】商务旅行 LCA 倍增
- Fragment的创建以及与activity的参数传递
- RAD DELPHI XE5的android开发环境配置
- Linux msgsnd : invalid argument
- 三年PS经验
- Java基础类型自动装箱(autoboxing)
- Hadoop RCFile存储格式详解(源码分析、代码示例)
- 对sql进行分页处理(Oracle版)
- PAT 乙级 1004. 成绩排名
- UVA 1193 区间相关(greedy)
- 【PHP】最详细PHP从入门到精通(四)——PHP中的字符串
- 如何在Django中配置MySQL数据库
- Codeblock代码提示自动补全(包括结构体成员)
- linux redis 主从复制
- Element-ui框架checkbox复选框回显
- useful urls
热门文章
- POJ - 3842 An Industrial Spy dfs(水)
- SGU 461 Wiki Lists dfs
- [ Java ] [ Eclipse ] 导出/导入Eclipse的workspace配置(备份Eclipse配置)
- epson 630打印机驱动安装不上
- ZOJ 3435 Ideal Puzzle Bobble 莫比乌斯反演
- Supervisor 的安装与配置教程
- this对象的理解
- HTML5吃豆豆游戏开发实战(一)使用Canvas绘制游戏主角
- Apache shiro 笔记整理之web整合一
- .Net MVC小尝试