gpt4 book ai didi

java - maven 依赖拉错了依赖

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:14:15 25 4
gpt4 key购买 nike

我有如下依赖:

    <dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2</version>
<scope>compile</scope>
</dependency>

这将拉下另一个依赖项 httpcore.4.1.4,它会抛出 ClassDefNotFound,当我部署 httpcore.4.2 时一切正常。

我添加了两个依赖如下:

    <dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2</version>
<scope>compile</scope>
</dependency>

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.2</version>
<scope>compile</scope>
</dependency>

并且仍然面临同样的问题,即:mvn 降低了 httpcore.4.1.2 而不是 httpcore.4.2

我该如何解决这个问题?

编辑:

已添加;

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.2</version>
<scope>compile</scope>
</dependency>
</dependencies>
</dependencyManagement>

最佳答案

你可能有一个传递依赖,你的其他依赖取决于你不想要的版本。

要获得所有依赖关系的概览,直接的和传递的,尝试:

mvn dependency:tree

如果你发现同一个依赖的不同版本之间崩溃,你应该做的第一件事是弄清楚崩溃是否是严重的(你需要两个吗?)如果不是,升级使最低的依赖版本变得相等到最高。如果它是一个传递依赖,请考虑升级它的版本。

如果您只想锁定特定版本的依赖项,您有一些选择:

排除传递依赖:

<dependency>
<groupId>com.something</groupId>
<artifactId>something</artifactId>
<exclusions>
<exclusion>
<groupId>com.somethingElse</groupId>
<artifactId>somethingElse</artifactId>
</exclusion>
</exclusions>
</dependency>

包含特定版本:

<dependency>
<groupId>com.somethingElse</groupId>
<artifactId>somethingElse</artifactId>
<version>2.0</version>
</dependency>

在您的 pom 中显式添加的任何依赖版本都将覆盖相同 groupId/artifactId 的任何传递依赖的版本。

虽然有点令人费解,但您应该尝试获取依赖项的兼容版本,即具有相同版本传递依赖项的版本。

关于java - maven 依赖拉错了依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13635388/

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