maven 传递依赖的冲突应该怎么做才是最好cherbim3年前发布880最近在管理 gradle / maven 写的源码,想问下平时是不需要做这个传递依赖的冲突检查吗,等抛出异常的时候才做还是每次安装依赖的时候都要做一次?最怕的问题在于不知道为什么编译期的版本冲突没有检查出来。而我们已经依赖了好多个 library,例如库 A 依赖 库 C 和库 D 的 1.0 ,但是库 B 是依赖库 C 和 D 的 2.0 。我在网上看了 maven 和 gradle 会自动帮我以某种最短路径策略去选择依赖库。但是这种选择我也不懂是不是能够保证选择出来的版本就是没问题的,总不能每次都重新测试整个 app 吧。而这种传递依赖的层级可能有 3/4 层。而我恰好前两天就遇到一个 java.lang.IncompatibleClassChangeError 。查了一下好像是关于依赖不兼容的问题, 编译期间没有检查出来,还是使用哪个 method 的时候才出现的 runtime exception 。问题是我在最上层 dependency management 例如写了是 2.0 ,那我也不能保证依赖 1.0 的一定没问题的。但写成 2.0 的,那风险也同样大。所以想向大家求教应该怎么做依赖的管理的最好方法。谢谢大家
没有回复内容