gpt4 book ai didi

java - 遮蔽(重新定位)传递依赖的一个版本,但不遮蔽另一个版本

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:01:41 26 4
gpt4 key购买 nike

我有一个包含两个依赖项的 Maven 项目,AB。其中每一个都传递地依赖于 C,但它们依赖于不同版本的 C。假设 A 依赖于 C 版本 1,B 依赖于 C 版本 2。

不幸的是,A 与版本 2 不兼容字节码,B 与版本 1 也不兼容。(碰巧的是,A 是 < em>与版本 2 源代码兼容,但我不认为这对我们有帮助。)

这意味着我的项目中需要传递依赖的两个版本,我需要 A 来使用版本 1,需要 B 来使用版本 2。

有没有办法做到这一点?

我曾假设我需要使用 shade 插件来重新定位 A 的包名称及其所有依赖项,但这似乎是不可能的。如果我遮蔽 A,它的依赖项不会被遮蔽,它仍然选择版本 2,并且无法运行。

最佳答案

创建另一个名为A-wrapper 的项目包装器A。在 A-wrapper 中重新定位 C。然后在您的主项目中,依赖于 A-wrapperB

我在 pb2 和 pb3 上遇到了类似的问题,并通过这种方式解决了。 https://stackoverflow.com/a/41394239/1395722

关于java - 遮蔽(重新定位)传递依赖的一个版本,但不遮蔽另一个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30575528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com