gpt4 book ai didi

java - Maven:如何处理冲突的依赖关系

转载 作者:行者123 更新时间:2023-12-02 13:28:00 24 4
gpt4 key购买 nike

我想要(必须)使用两个相邻的 Maven 依赖项“Y”和“G”,同时它们与不同版本共享相同的依赖项。默认情况下,旧版本将被新版本覆盖。然而这会破坏性能。如何隔离这两个依赖项并确保它们使用正确的依赖项?

enter image description here

最佳答案

By default behavior, the older version will be overwritten by the newer one.

这不是真的。默认情况下,Maven 在解决同一依赖项的冲突版本时使用最近定义策略。它不一定需要新版本。这意味着依赖树中较高级别的 POM 声明的版本会覆盖较低级别 POM 中声明的版本。如果两个版本处于同一级别,就像您的图表中的情况一样,则采用第一个声明的版本。

强制使用特定版本依赖项的最佳方法是在父 POM 的 dependencyManagement 部分中显式定义 依赖项:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>groupId-z</groupId>
<artifactId>dependency-z</artifactId>
<version>1.0</version>
</dependency>
...

然后所有子项目及其依赖项将自动使用指定的版本。

有关 Maven 中依赖冲突解决的更多详细信息,请参阅 this page .

关于java - Maven:如何处理冲突的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43330499/

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