gpt4 book ai didi

java - 如何管理所需的、冲突的 Java 依赖项

转载 作者:行者123 更新时间:2023-12-01 14:31:51 24 4
gpt4 key购买 nike

假设我需要(必需)在我的 Java 项目中使用 fizz-1.0.jarbuzz-2.3.2.jar 。现在,fizz-1.0.jar 依赖于 foo-0.1.35.jar,而 buzz-2.3.2.jar 依赖于 foo-4.2.17.jar.

foo-0.1.35.jar 包含一个 Widget 类,如下所示:

public class Widget {
public int doSomething(int x) {
return x++;
}
}

foo-4.2.17.jar 包含经过大量修改的 Widget 版本:

public class Widget {
public Meh makeStuff() {
return new Meh();
}
}

不幸的是,fizz-1.0.jarbuzz-2.3.2.jar 都大量使用了 Widget 的两个版本。

我不能盲目地将两个版本的 foo-x.y.z.jar 添加到类路径中,因为无论先加载哪个 Widget 都只适用于 fizz -1.0.jarbuzz-2.3.2.jar

这里我有什么选择?记住我必须同时拥有fizz-1.0.jarbuzz-2.3.2。 jar,并且必须满足其所有传递依赖关系。

最佳答案

我建议您使用区分类加载的框架。例如。 OSGi 框架。然后您可以创建 2 个 bundle - 一个包含 fizz 实现,另一个包含嗡嗡声实现。它们都可以包含不再冲突的依赖库,因为它们是从 2 个不同的类加载器加载的。

示例 osgi 容器或“Eclipse Equinox”和“Apache Felix”,但还有更多。

希望有帮助。

关于java - 如何管理所需的、冲突的 Java 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16814132/

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