【问题标题】:Maven: How to stop using old version of dependency?Maven:如何停止使用旧版本的依赖?
【发布时间】:2020-10-24 00:10:55
【问题描述】:
在我的Java Maven Project 中,我可以看到一个依赖项(apache httpcomponents)的以下 2 个版本:
如何确保在我的项目中只使用最新版本(4.5.2)?
我什至在我的 pom.xml 文件中的任何位置都找不到声明的 4.2.1 来删除它。
【问题讨论】:
标签:
java
maven
dependencies
pom.xml
【解决方案1】:
一个给定的项目不应该有两个版本的相同依赖项。
因此,要么您的 IDE 在这里显示错误,要么您在构建之前没有 mvn clean,因此新旧依赖项混合在一起。
Maven 将始终只采用 一个 版本。不幸的是,您不能告诉 Maven 采用最新的,但它总是会采用依赖关系树中最近的。
如果要为特定依赖项设置版本,请使用<dependencyManagement>。
【解决方案2】:
根据您使用 IntelliJ 的屏幕截图。我不得不同意这种观点有点令人困惑。在Project-选项卡中,您将External Libraries 包含此选项卡中所有 项目的所有 依赖项。因此,依赖项可能会出现在不同的版本中。
在Maven-tab(右侧)中,您可以看到每个项目的依赖关系树。首先,您将看到直接依赖项,您可以将其展开以查看下一级依赖项。 AFAIK 在 IntelliJ 中没有可用的完整依赖项列表,就像在 Eclipse 中看到的那样。
【解决方案3】:
这是 IDE 的视图,它显示了您项目中所有使用或使用的库。一旦将 pom.xml 指向新版本并重建项目,将使用新版本。
在 Intellj 中,您可以选择:Menu -> File -> Invalidate Caches/Restart 来更新它。如果这没有帮助,请从现有的 pom.xml 文件开始新项目