依赖包的优先级设置的方法介绍
程序员文章站
2022-03-20 09:17:50
...
本篇文章给大家带来的内容是关于依赖包的优先级设置的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
问题出现:一个老项目的退款功能被微信支付后台停用,原因是xml解析工具有漏洞风险,
微信客服给出的解决方案是使用官方的补丁。
使用补丁后发现:xml-api包与jdk自带的包冲突。
具体原因:
xml-api包的某个类与jdk自带的某个类具有相同的全限定名,但是xml-api包中并没有相关实现,
IDE没有依赖jdk自带的包,而是优先依赖xml-api包,导致项目无法完成编译。
在 Maven 中排除 xml-api 包: 从父 pom 里面做排除: 但是项目年代久远,各种类库的依赖盘根错节, 到父 pom 里面没找到依赖,到依赖的自定义基本库里面也没找到。 况且考虑到父 pom 被其他项目依赖的可能性,所以还是想想其他办法。 全局排除: 在 pom 文件里加入冲突包的依赖,然后再排除包里全部的内容: <dependency> <groupId></groupId> <artifactId></artifactId> <version></version> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> 这个方法能够排除掉项目对 xml-api 包里的全部依赖; 但是因为先导入后排除,项目依然会优先依赖 xml-api 包;所以问题还是没有解决。推荐方案:
修改依赖包的优先级: 因为这个老项目是用 Eclipse 开发,先说 Eclipse 操作方法。 Eclipse: 设置 build path order; 把优先级高的包放到上面, 所以可以把 jre 的包放到最上面。 顺便看了下 IDEA 的设置,也能修改优先级。 IDEA: 修改 classpath order: 菜单:File -> Project Structure -> Modules 快捷键:Ctrl + Alt + Shift + S -> Modules 把优先级高的包放到上面, IDEA 中,jdk 自带的包默认就是最高优先级,所以使用 IDEA 不会出现类似的问题。
以上就是依赖包的优先级设置的方法介绍的详细内容,更多请关注其它相关文章!
上一篇: Java中多线程阻塞和唤醒的示例代码
下一篇: Windows系统自动更新怎么关闭
推荐阅读
-
CorelDRAW中的快捷键设置方法介绍
-
360随身wifi怎么设置自动关机?设置360随身WiFi定时关机的方法介绍
-
filezilla上传后文件不见了是什么原因? filezilla设置隐藏文件的方法介绍
-
电脑中如何将傲游浏览器设置为默认浏览器?设置傲游云浏览器为默认浏览器的方法介绍
-
设置php页面编码的两种方法示例介绍
-
360浏览器如何屏蔽广告?360浏览器广告拦截的设置方法详细介绍
-
设置迅雷成为谷歌浏览器的默认下载工具的方法详细图文介绍
-
分卷压缩包怎么解压缩?解压分卷压缩文件的简单的方法介绍
-
Linux下设置可使用netpas网络加速器的方法与步骤介绍
-
怎样设置IE浏览器字体变大或变小的图文方法介绍