jar包冲突及解决步骤

转载:https://www.cnblogs.com/godtrue/p/6220512.html

报错信息

十二月 14, 2016 7:52:34 下午 org.apache.catalina.core.ContainerBase addChildInternal
严重: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: org/springframework/core/env/EnvironmentCapable
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 40 more
Caused by: java.lang.ClassNotFoundException: org.springframework.core.env.EnvironmentCapable
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
... 68 more

分析过程

问题的分析思路:

        根据提示“Caused by: java.lang.ClassNotFoundException: org.springframework.core.env.EnvironmentCapable”,看看能否找到对应的类,如下所示:

jar包冲突及解决步骤_第1张图片

3-2:根据上图(3-1)的自我问答,看看我们的项目中依赖的jar文件是否正确,如下所示,确实是存在问题的,随后我们会发现,这个依赖的jar文件中确实没有我们使用的类。

jar包冲突及解决步骤_第2张图片

3-3:我们确认一下自己的分析,看看对应的类是否存在于我们依赖的jar文件之中,如下图所示,确实是没有的。

jar包冲突及解决步骤_第3张图片

3-4:通过如下图所示的方式,我们到对应的pom文件的依赖处,看看依赖的情况。

jar包冲突及解决步骤_第4张图片

3-5:因为传递依赖导致了依赖版本的冲突,我们需要通过exclusion标签排除对应的传递依赖,试试看能否解决对应的问题

jar包冲突及解决步骤_第5张图片

3-6:然后我们再次查看项目的依赖,确认我们的项目现在的依赖是没问题的

jar包冲突及解决步骤_第6张图片

3-7:重新启动项目后,还是报错,我们只能再次的分析一下这个错误是怎么回事了,思路如上就不在重提了。

jar包冲突及解决步骤_第7张图片

3-8:先看看引起错误的类是否存在,如下所示是存在的,不过却是在两个jar文件之中的,这让我首先想到可能还是传递依赖导致的依赖版本有冲突的问题

jar包冲突及解决步骤_第8张图片

3-9:根据我们的怀疑,我们就看看我们的项目依赖jar文件是哪个吧!果然,还是低的版本!

jar包冲突及解决步骤_第9张图片

3-10:那我们就再次的通过exclusion标签排除一下,试试吧!

jar包冲突及解决步骤_第10张图片

3-11:成功了耶!到这里是不是有点小兴奋,毕竟我们的价值多数是源自我们解决的问题!

解决jar包冲突四个原则

转载:https://blog.csdn.net/guo13313/article/details/73143909?utm_source

一、第一声明优先原则

示例:



  	
  		org.springframework
  		spring-context
  		4.2.4.RELEASE
  	
  

  	
  		org.apache.struts
  		struts2-spring-plugin
  		2.3.24
  	

 

二、路径近者优先原则


  	org.springframework
  	spring-beans
  	4.2.4.RELEASE

 

三、排除原则


  	org.apache.struts
  	struts2-spring-plugin
  	2.3.24
  	
  	   
  	      org.springframework
  	      spring-beans
  	   
       

 

四、版本锁定原则


	4.2.4.RELEASE
	5.0.7.Final
	2.3.24

 


	
		
			org.springframework
			spring-context
			${spring.version}
		
        

 

你可能感兴趣的:(maven,java)