摇篮。说依赖性使用另一个版本的已包含依赖性

时间:2019-04-19 11:13:51

标签: gradle dependency-management gradle-dependencies

示例:

implementation(group: 'org.seleniumhq.selenium', name: 'selenium-remote-driver', version: '3.13.0')
implementation(group: 'com.mypack', name: "old-library", version: '1.0')

问题是old-library抛出 java.lang.NoClassDefFoundError: org/openqa/selenium/remote/SessionNotFoundException在较新的硒版本中缺失。 不幸的是,我无权访问源代码。 问题-是否只能说old-library使用旧的硒版本?

1 个答案:

答案 0 :(得分:0)

好的,那不可能。当我从Gradle Slack聊天中得到时:

  

没有依赖包的重新定位是没有办法解决的

     

实际上,在这种情况下,即使在类路径级别也没有问题,因为如果2个依赖项具有相同的ID,Gradle必须选择其中之一。   如果仅更改依赖关系ID,则将在运行时遇到问题,因为具有许多冲突类的2个依赖关系将位于同一类路径上。它对Java有效,但是根据类路径解析度选择哪个版本取决于类加载器,而您不能依靠它