如何排除掉maven引入的jar包里的某个类_maven排除某个类-程序员宅基地

技术标签: java  maven  

如何排除掉maven引入的jar包里的某个类

我们知道可以使用 <exclude> 来排除掉引入的jar包所依赖的jar包,但是有时候某个类并不是它引入其他jar而导致的,是这个jar本身的,你如何排除呢? 总不能把自身这个jar去掉吧,因为这个jar的其他类还是有用的。

比如有如下两个GAV

<dependencies>
        <dependency>
            <groupId>com.wyf.test</groupId>
            <artifactId>be-import1</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.wyf.test</groupId>
            <artifactId>be-import2</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

这是两个不同的GAV,思考一个问题,假MyApi设import1 和 2 中都有相同包名相同类名的类,比如都叫做 com.wyf.test.sameclass.MyApi,两个GAV的实现是不一样的,那究竟哪个生效? 结论是写在前面的生效,比如上面的import1覆盖import2,如果互换位置,import2生效。谁先写谁生效

注意,这种覆盖并不是jar包级别的,而是细到类级别的,比如impot1虽然覆盖了import2,但是仅仅是 import1的com.wyf.test.sameclass.MyApi被 import2中相同包名和相同类名覆盖掉,但是,如果import2有一个其他类,在import1里是没有的,则不会被覆盖。

这是因为java的类加载机制是,加载了这个类后遇到相同的就不会再加载了

利用这种特性,我们可以解决一些难题,比如有个GAV,我们需要覆盖掉某些类,因为这个GAV里那个类并不能通过maven的<exclude> 来排除,我们就在这个GAV之前声明包含这个类的GAV。

注意,对某个GAV 进行 <exclude>,只能排除掉GAV所依赖的GAV,粒度是比较大的。万一你要排除的类,并不是这个GAV引入的,而是自身就带有的,这是就无能为力了。如图所示

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/w8y56f/article/details/108185786

智能推荐

【最新Unity3D—Particle System粒子系统】最新Unity2017.2018.2019.2020均适用且超详细_unity particle system 实例化-程序员宅基地

文章浏览阅读299次。方法1.GameObject中选择Particle System,即可在场景中创建粒子系统对象方法2.先create empty ,再到Component中选择Effects后,选择Particle System,即为该空物体添加了粒子系统组件。_unity particle system 实例化

通过EasyX实现Bresenham画线_easyx线条粗细-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏3次。基本上Bresenham画线算法的思路如下:// 假设该线段位于第一象限内且斜率大于0小于1,设起点为(x1,y1),终点为(x2,y2).// 根据对称性,可推导至全象限内的线段.1.画起点(x1,y1).2.准备画下个点。x坐标增1,判断如果达到终点,则完成。否则,由图中可知,下个要画的点要么为当前点的右邻接点,要么是当前点的右上邻接点.2.1.如果线段ax+by+c=0与x=x1..._easyx线条粗细

i5-1035G1和R7 4800U 哪个好_r74800u和i51035g1哪个好-程序员宅基地

文章浏览阅读7.7k次。酷睿i5-1035G1是一款高效的四核SoC,适用于基于Ice -Lake-U 系列的笔记本电脑和超极本 。它集成了四个Sunnycove处理器内核(由于HyperThreading而支持8个线程),主频为1(基本) – 3.7(单核Turbo)GHz。选锐龙i5-1035G1 还是R7 4800U 哪个好 https://list.jd.com/list.html使用Turbo Boost,2个内核可以达到3.6 GHz,所有4个3.3 GHz。据英特尔称,Sunnycove内核的IPC数量增加了1_r74800u和i51035g1哪个好

Forth_forth语言 浮点数-程序员宅基地

文章浏览阅读2.9k次。C 语言使你迷茫?Forth 可能是一个答案程序语言2010-05-25 22:27:28阅读153评论0 字号:大中小 订阅转自:http://www.embeddedsoft.cn/news-detail.aspx?Id=100原标题 Lost at C? Forth May Be the Answer 原作者 Tom Napier 和 Eric Krieg 原文引自 www.Forth.org 曾经有个时期,人们不害怕从_forth语言 浮点数

Centos7 安装MySQL详细步骤_centos7安装mysql-程序员宅基地

文章浏览阅读2.3w次,点赞20次,收藏124次。Centos7 安装MySQL详细步骤 _centos7安装mysql

CTC+pytorch编译配置warp-CTC,以及问题解决_libwarpctc.so-程序员宅基地

文章浏览阅读2.3k次。warp-CTC安装warp-CTC是百度开源的一个可以应用在CPU和GPU上高效并行的CTC代码库,对CTC算法进行了并行处理。warp-CTC安装:git clone https://github.com/SeanNaren/warp-ctc.gitcd warp-ctcmkdir build; cd buildcmake ..makecd ../pytorch_binding..._libwarpctc.so

随便推点

Wireshark简单使用-程序员宅基地

文章浏览阅读794次,点赞14次,收藏18次。wireshark下载、安装、使用教程

MXNet 粗糙的使用指南_iou loss mxnet-程序员宅基地

文章浏览阅读288次。MXNet 粗糙的使用指南写于2020年3月24日,最新的CUDA版本为10.2MXNet简介MXNet是一个(跟TF与Torch相比特别小众的)多平台神经网络框架。优点:灵活,多平台,可移植性强。工业界常用框架。缺点:复杂,难以入门,基本没有教材。只能依靠代码来学习代码。框架介绍MXNet现在存在两种界面:symbol与gluon。Symbol的设计思路与T..._iou loss mxnet

iOS对ipa包进行代码混淆《二》 ---代码混淆_ipa包混淆-程序员宅基地

文章浏览阅读1.3k次。接上一篇文章ipa包砸壳,接下来讲一下代码混淆。混淆代码,我们需要生成两个文件confuse.sh和func.list。confuse.sh是一个脚本文件,里边定义了混淆的一些算法,以及需要混淆方法的路径。func.list是我们列举的一些需要混淆的方法。当然系统的方法不能混淆,不然一些库文件方法没办法正确加载。1、首先,终端cd到文件目录,并且利用指令touch生成这两个文件touch confuse.shtouch func.list不出意外,文件目录里已经有这两个文件了。_ipa包混淆

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

推荐文章

热门文章

相关标签