gpt4 book ai didi

Java Maven - 如果两个第三方依赖于不同版本的库,如何解析版本

转载 作者:太空宇宙 更新时间:2023-11-04 12:55:22 28 4
gpt4 key购买 nike

我有一个场景如下:

我使用 Maven 作为构建过程。我正在创建一个 Web 项目,我想在其中使用特定版本的 spring。该项目还依赖于第三方库,该库内部依赖于不同版本的 spring。我怀疑这会导致两个不同版本的 spring n 类路径,并且会观察到意外的行为。我想要获得更多澄清的信息很少。

  1. 我可以为此使用 Maven BOM 概念吗?
  2. 有人可以举例说明如何实现这一目标吗?
  3. 有人可以解释一下,如果整个项目描述使用 BOM 来使用特定版本,我们如何确保第三方不会出现异常行为?

如果有人可以阐明它并提供详细引用,那将对我有很大帮助。

最佳答案

Maven 应该知道如何逐出 Artifact 的一个或多个冲突版本。但是,您可以通过简单地排除传递包含的依赖项之一来影响这一点。示例:以下代码排除了 io.netty(传递)依赖项。这样,您就可以根据您的决定/偏好,将 Maven 留给唯一的其他版本。

    <dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>${hbase.version}</version>
<!-- The exclusion below makes sure that this specific version imported by hbase does not end up deployed -->
<exclusions>
<exclusion>
<artifactId>netty</artifactId>
<groupId>io.netty</groupId>
</exclusion>
</exclusions>
</dependency>

关于运行时行为,您必须自己测试和决定(也就是说,如果您不幸运拥有记录其自身依赖项版本的直接 Artifact )

关于Java Maven - 如果两个第三方依赖于不同版本的库,如何解析版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35433173/

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