gradle - 摇篮。说依赖来使用另一个版本的已经包含的依赖
问题描述
例子:
implementation(group: 'org.seleniumhq.selenium', name: 'selenium-remote-driver', version: '3.13.0')
implementation(group: 'com.mypack', name: "old-library", version: '1.0')
问题是较新的 selenium 版本中缺少的old-library
throws
。java.lang.NoClassDefFoundError: org/openqa/selenium/remote/SessionNotFoundException
不幸的是,我无法访问源代码。问题 - 是否可以说只old-library
使用旧的硒版本?
解决方案
好吧,那是不可能的。正如我从 Gradle Slack 聊天中得到的:
比没有依赖包重定位没有办法解决
实际上,在这种情况下,甚至在类路径级别上都没有问题,因为如果 2 个依赖项具有相同的 id,则 Gradle 必须选择其中之一。如果仅更改依赖项 ID,则运行时会出现问题,因为具有许多冲突类的 2 个依赖项将位于同一类路径上。它对 Java 有效,但是在类路径解析中选择哪个版本取决于类加载器,你不能依赖它
推荐阅读
- flutter - Beacon functionality in Flutter
- .net-core - OpenCover 未在 Azure Devops 中上传
- c - 使用 strtok 后函数未运行
- google-chrome-extension - 如何设置 Chrome Webstore 上显示的 220x140 主图像以进行扩展
- c - 从C中的字符串修剪前导和尾随空格
- json - 如何在不溢出堆栈的情况下将 XML 文件转换为 JSON?
- arrays - 在数组中查找最大值
- c# - C# 从列表转换
- > 到 IList
> - c# - 在 C# 中删除数据结构和释放内存的有效方法(垃圾收集)
- android - 如何在 Firestore 查询中使用 .whereEqualTo 并在其上使用 .startAt?