Maven:如何停止使用旧版本的依赖?
Posted
技术标签:
【中文标题】Maven:如何停止使用旧版本的依赖?【英文标题】:Maven: How to stop using old version of dependency? 【发布时间】:2020-10-24 00:10:55 【问题描述】:在我的Java Maven Project
中,我可以看到一个依赖项(apache httpcomponents)的以下 2 个版本:
如何确保在我的项目中只使用最新版本(4.5.2)?
我什至在我的 pom.xml
文件中的任何位置都找不到声明的 4.2.1 来删除它。
【问题讨论】:
你清理并构建了项目吗? 旧版本可能会被另一个依赖项传递进来。 Inspect the dependency tree 看看是不是这样。如果是,你可以试试using an exclusion。 【参考方案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 文件开始新项目
【讨论】:
以上是关于Maven:如何停止使用旧版本的依赖?的主要内容,如果未能解决你的问题,请参考以下文章