知识点:
maven的依赖仲裁
Maven的依赖仲裁优先级
路径优先:1.对于该项目而言,根据jar包的依赖路径,短的优先声明优先:2.路径一样,被依赖者声明的前后有关,同一个pom,前面的优先
覆写优先:3.子pom优先于父pom
最终查看lib文件夹的jar包
1.jar包冲突无非就是没有使用到自己想要的版本的jar包
解决思路1:
<!--在依赖的jar包下面排除不想要的jar包 -->
<exclusion>
<artifactId>asm</artifactId>
<groupId>asm</groupId>
</exclusion>
解决思路2:
如果运行时期还是用到了自己不想要的jar包,可以重新maven项目,建议
重启IDE或者清缓存
解决思路3:
其他错误,同样结构的jar导致引用失败的问题(依赖构件不一样,盗版货慎用),建议排除没有用到的jar包
2.经过maven这一层后,冲突基本明显知道,所以在lib文件夹下可能就只有一种版本的jar包了(逃过maven管理的,结构一样的jar包除外)
3.引用一句话:http://blog.csdn.net/gjyalpha/article/details/7265788
WEB-INF/lib/下面放了多个不同版本的jar包,你是完全无法控制JVM或者说JBoss去先加载哪个jar包中的类的。还是老老实实的想办法,把版本通过Maven仲裁掉。