Maven中的包的依赖冲突是很容易产生的,特别是在一个长时间保护的切繁杂的项目中,如果你跟我同样发现了本地仓库中存在多版本冲突问题,那么恭喜你,你的项目可能要崩.
Maven默许的依赖机制是顺序依赖,也就是说在低版本包被加载以后,高版本就是检测到也不会去鸟它.文章源自微观生活(93wg.com)微观生活-https://93wg.com/11525.html
来张图说明一下关系.文章源自微观生活(93wg.com)微观生活-https://93wg.com/11525.html
项目X引入Y,G包,Y,G包又单独依赖了Z包,版本冲突问题来了.文章源自微观生活(93wg.com)微观生活-https://93wg.com/11525.html
如果想用Z2.0的包,那么就要保证G包的加载要在Y以前,这类做法是最简单直接的了.文章源自微观生活(93wg.com)微观生活-https://93wg.com/11525.html
但问题是怎么快速的发现这种问题从而提早防止相似的过错呢?文章源自微观生活(93wg.com)微观生活-https://93wg.com/11525.html
我去Maven官网翻了半天,发现个号东西:文章源自微观生活(93wg.com)微观生活-https://93wg.com/11525.html
Enforcer: https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html文章源自微观生活(93wg.com)微观生活-https://93wg.com/11525.html
这款插件可以快速帮咱们分析POM文件中的依赖冲突,配置方式很简单.它会把所有依赖关系强行收敛到相同的版本.文章源自微观生活(93wg.com)微观生活-https://93wg.com/11525.html
可以通过maven enforcecer: enforce来查看冲突,例如:文章源自微观生活(93wg.com)微观生活-https://93wg.com/11525.html
结论文章源自微观生活(93wg.com)微观生活-https://93wg.com/11525.html
包依赖冲突的问题或许不会立刻暴露出来,但咱们要知道有这类问题.
这里也只是提出了一种解决方案,留个标记.
以上就是微观生活(93wg.com)关于“快速查找并解决Maven项目依赖包的冲突问题”的详细内容,希望对大家有所帮助!
评论