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

时间:2020-07-03 09:30:05

标签: java maven dependencies pom.xml

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

enter image description here

如何确保项目中仅使用最新版本(4.5.2)?

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

3 个答案:

答案 0 :(得分:1)

对于给定的项目,永远不应有两个版本的相同依赖项。

所以您的IDE在这里显示出了错误,或者您在构建之前没有mvn clean,因此旧的和新的依赖项混合在一起。

Maven将始终仅采用一个版本。不幸的是,您不能告诉Maven采取最新的一种,但是它将始终采用依赖关系树中最近的一种。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这是IDE的视图,它显示了项目中所有已使用或已使用的库。将pom.xml指向新版本并重建项目后,将使用新版本。 在Intellj中,您可以选择:菜单->文件->无效的缓存/重新启动以对其进行更新。如果这样做没有帮助,请从您现有的pom.xml文件开始新项目