Maven:如何停止使用旧版本的依赖项?

Maven: How to stop using old version of dependency?

在我的 Java Maven Project 中,我可以看到一个依赖项 (apache httpcomponents) 的以下 2 个版本:

如何确保我的项目只使用最新版本(4.5.2)?

我什至找不到在我的 pom.xml 文件中任何地方声明的 4.2.1 来删除它。

对于给定项目,绝不能存在相同依赖项的两个版本。

所以要么你的 IDE 在这里显示了一些错误,要么你在构建之前没有 mvn clean 以便新旧依赖关系混合。

Maven 将始终只采用 一个 版本。不幸的是,你不能告诉 Maven 取最新的一个,但它总是会取依赖树中最近的一个。

如果要为特定依赖项设置版本,请使用<dependencyManagement>

根据您的屏幕截图,您正在使用 IntelliJ。我不得不承认,这种观点有点令人困惑。在 Project 选项卡中,您将 External Libraries 包含此选项卡中 all 项目的 all 依赖项。因此,依赖项可能会出现在不同的版本中。 在 Maven 选项卡(右侧)中,您可以看到每个项目的依赖关系树。首先,您将看到直接依赖关系,您可以展开它以查看下一级依赖关系。据我所知,IntelliJ 中没有可用的完整依赖列表,就像在 Eclipse 中看到的那样。

这是IDE的视图,它显示了您项目中所有正在使用或使用过的库。将 pom.xml 指向新版本并重建项目后,将使用新版本。 在 Intellj 中,您可以 select: 菜单 -> 文件 -> 无效 Caches/Restart 来更新它。如果这没有帮助,请从现有 pom.xml 文件

开始新项目