Java面试题:应用程序中存在包冲突的情况下,怎么发现和解决

createh52周前 (12-16)技术教程18

你们能想象,一个工作4年的程序员,竟然连这个问题都搞不清楚。

应用程序中存在包冲突的情况下,解决的问题应该很容易吧,甚至大家在工作中应该也遇到过啊。

好吧,今天抽空给大家分享一下这个问题的回答思路。

问题分析

这个就是一个简单的经验问题,一般在工作中都有可能遇到过。

即便没遇到过,也能基于自己已有的经验去回答出来。

无非就是把存在冲突版本的包排除就行了。下面来看看完整的回答。

问题答案

应用程序中存在包冲突的情况下,一般不需要主动去发现,程序在运行的时候会提示异常,比如常见的NoSuchMethodException。

异常的原因是不同版本的依赖包中的类或者方法存在差异。

所以我们可以根据错误日志定位到冲突的类或者方法,然后找到所属的包。

接着使用Intellij IDEA这个工具自带的依赖关系分析或者mvn dependency:tree,来分析当前应用中的包依赖关系,定位到哪些依赖包中引用了不同的版本库。

最后,可以在Pom文件对应的依赖包中,通过<exclusive>标签排除掉低版本的依赖。

总结

好了,今天的分享就到这里结束了。

如果喜欢我的作品,记得点赞、收藏、关注!

需要面试宝典(附赠大厂内部字面试文档、简历模板、学习路线图)或者有不懂的技术面试题想咨询的小伙伴可以后台私信发送【Mic】。

相关文章

Windows脚本用于启停Java应用程序JAR包,并具备日志输出功能

1. 创建批处理脚本创建一个批处理文件(例如 app.bat),并在其中编写启动和停止 JAR 包的命令,并将输出重定向到日志文件。app.bat@echo offsetlocal:: 设置环境变量s...

Java:什么是Spring框架? java中的spring框架

  Spring框架是一个开源应用程序框架,通过提供基础设施支持来支持Java应用程序的开发。它是著名的Java企业版框架之一。Spring通过使用普通旧Java对象 (POJO) 帮助开发人员创建高...

这样做优化,实现 0.059s 启动一个SpringBoot项目

前言最近自己用Spring Cloud Alibaba做了一个微服务架构的项目,部署的时候遇到了难题:内存不够。目前该项目有7个微服务,因为我只有一台阿里云的服务器(2C 4G),所以我只能把所有的微...

JDK 8中JAVAFX的终结:保持应用程序存活

虽然建议您将应用程序更新到较新的 Java 版本,但其他 OpenJDK 发行版可以使您的系统在 Java 8 上运行 JavaFX。译自 End of the Road for JavaFX in...