在 gradle 中过滤传递依赖项有多详细?我正在与 jvm-classpath 作斗争。在运行时,我们遇到 java.lang.ClassNotFoundException:io.opentelemetry.api.internal.InstrumentationUtil
这个类应该在 opentelemetry-instrumentation-api 中吗?它在哪个版本被删除或添加?
io.opentelemtry 组有许多子模块,我们的构建中有数百种不同的依赖项。因此,无法强制使用特定版本,因为这会导致许多依赖项中断。
有没有办法强制对传递依赖项进行版本控制?例如:
- 模块 a 依赖于模块 b
- 模块 b 对模块 c 具有暂时依赖性,而模块 c 又依赖于 io.opentelemtry:*:2.7.0
- 模块 b 还对模块 d 具有暂时依赖性,而模块 d 又依赖于 io.opentelemtry:*:1.37.0
问题:我不能对依赖项 (模块 b) 施加使用版本 2.7.0 的限制,因为这会导致暂时依赖项 (模块 d) 的使用中断。另一方面,我不能对依赖项 (模块 b) 施加使用版本 1.37.0 的限制,因为这会导致暂时依赖项 (模块 c) 的使用中断。
有什么解决办法吗?