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

1. 项目间传递

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

Java代码

com.projecct

project2

1.0

compile

true

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

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

2. 依赖过滤

(1)单依赖过滤

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

Java代码

org.apache.hbase

hbase

0.94.17

commons-logging

commons-logging

(2)多依赖过滤

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

Java代码

org.apache.hbase

hbase

0.94.17

*

*

java如何排除多余的依赖_Maven依赖排除 禁止依赖传递 取消依赖的方法 去除jar包中的不想要的依赖关系...相关推荐

  1. java打包要依赖maven库吗_maven-将依赖的 jar包一起打包到项目 jar 包中

    前言: 有时候在项目开发中,需要很多依赖的 jar 包,其中依赖的 jar 包也会依赖其他的 jar 包,导致jar 包的管理很容易不全,以下有两种方法可以规避这个问题. 一.在pom.xml 文件中 ...

  2. mvn install:install-file将本地一个中央仓库没有的jar包,推到本地仓库----所有依赖不上仓库不能用

    mvn install:install-file将本地一个中央仓库没有的jar包,推到本地仓库----所有依赖不上仓库不能用! 前提:maven等环境配置Ok 目标:把中央仓库没有的,部门内部 自研开 ...

  3. autowired注入jar中的依赖_springboot项目中调用jar包中的类时报错 — 没有注入类

    使用场景:将一些公共的方法封装成了一个jar包,在其他项目中进行引用的时候报错 报错原因:bean没有注入 因为这两个类没有被@Service,@Repository等类注解,如果我们想用@Autow ...

  4. java jar包资源文件_深入jar包:从jar包中读取资源文件

    我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看 ...

  5. java原生和SpringBoot读取jar包中MANIFEST.MF的方式

    我们经常看到java的一些jar包META-INF目录下包含一个MANIFEST.MF文件,里面包含一些版本信息,标题,实现组织,很多第三方的jar包还会自定义一个属性. 本文讲解如何读取jar包中M ...

  6. [Java基础] 深入jar包:从jar包中读取资源文件

    转载: http://hxraid.iteye.com/blog/483115?page=3#comments 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的 ...

  7. java执行jar中的main_浅谈java 执行jar包中的main方法

    浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 ...

  8. 如何讲页面打入jar包中_如何把我的Java程序变成exe文件?

    JAVA是一种"跨平台"的语言,拥有"一次编写,处处运行"的特点,让它成为当今IT行业,必不可少的一门编程语言. 每一个软件开发完成之后,应该大家都需要打包程序 ...

  9. java 读取jar包中的文件

    文章目录 项目resource中文件路径和jar包中文件路径的区别 正常读取 jar包读取 完整代码: 项目resource中文件路径和jar包中文件路径的区别 打成jar包后,是一个整体的文件. 正 ...

最新文章

  1. 自学python找工作工资-大四应届毕业生,学了两个月Python,找工作感觉好难啊?...
  2. Linux内核链表之共享双链表
  3. [转]实用体系结构:逻辑分层
  4. 排序函数(sort()、sorted()、argsort()函数)
  5. MySQL报错 Packet for query is too large,server向mysql发送的数据包大小超过mysql限制
  6. 「07」回归的诱惑:深入浅出逻辑回归
  7. 《程序员自我修养》阅读笔记-可执行文件装载与进程
  8. docker常用功能操作记录5
  9. 【课本】【No.3】随机向量定义、联合分布函数、边缘分布、统计特征的分布函数的差分,独立性、离散型条件分布列,连续型分布函数与密度函数、随机向量的函数分布
  10. 泛微oa系统什么框架_产品方案-产品体系-系统整体架构_OA_泛微
  11. 用java 解密pdf_Java 加密、解密PDF文档(示例代码)
  12. 关于我的 “二进制部署 kubernetes 集群” 的体验
  13. 全通系统定义、零极点关系、应用
  14. 洛谷P3354 [IOI2005]Riv 河流 题解
  15. PostgreSQL alter语法
  16. Android面试题收集(有具体答案)
  17. C++对接国际验证码接口DEMO示例
  18. Python中turtle画n层m个不同方向的圆,送你一朵小黄花
  19. qt 飞扬青云_Qt编写安防视频监控系统(界面很漂亮)
  20. “囚徒困境”与帕累托最优理论以及基于OpenAI的辅助--测试(3)

热门文章

  1. 【nginx】nginx 反向代理 指令说明
  2. 【java】ASM代理方式 Byte-Buddy代理方式 Javassist代理方式
  3. [Elasticsearch] es 6.6 编译报错 java.net.ConnectException: Operation timed out
  4. 【Elasticsearch】es 的配置集合
  5. RocketMQ项目rocketmq-externals中rocketmq-console启动报错
  6. 记一次极其坑爹的Maven无法下载相关Jar包的问题:IDEA问题
  7. 【Druid IO】Instantiation of [simple type, class druid.indexing.kafka.supervisor.KafkaSupervisorTunin
  8. Java8 Stream流式编程,极大解放你的生产力!
  9. IntelliJ IDEA 开启很慢,运行不流畅,大项目卡顿?一招配置解决!
  10. 开发机直连 Docker 中的 Redis 容器小教程