IntellijIdea+Maven:依赖版本在运行时是错误的



这让我抓狂。最初,我在项目中添加了Jackson v.2.5.4的依赖项。后来,我将其更新为使用2.6.4,如下所示:

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.6.4</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.6.4</version>
    </dependency>

在编写代码时,我可以看到新版本的功能已经存在。此外,当我转到模块和工件下的项目设置时,那里的所有内容都说jackson 2.6.4。

但是,当我运行该程序时,很明显它使用的是2.5.4版本。我看到2.6.0中添加的新功能不存在,我也检查了:

System.out.println(ObjectMapper.class.getPackage().getSpecificationVersion());

输出为2.5.4…

我重新构建了项目,重新导入了依赖项,并多次重新启动intellij。。。。请帮忙。。。

步骤1:

打开项目的文件夹,然后转到:.idea/libraries/,您应该在这里找到一个基于maven依赖关系的文件。删除jackson-corejackson-databinding文件。


步骤2:删除maven依赖项

从"pom.xml"文件中删除这两个依赖项。(不要评论,删除行)。


步骤3:检查Intellij项目配置

打开project structure窗口(点击Intellij中最上面的父文件夹,然后按F4),然后转到Libraries选项卡。确保不存在这两个依赖项,如果存在,也删除它们(使用顶部的"-"按钮)。


步骤4:删除所有缓存的maven库

转到主文件夹,对于windows:C:Users<YOUR_NAME>.m2,请在此处删除存储库文件夹。


第5步:重新规划项目

在intellij中:右键单击项目的顶部文件夹,然后单击> Maven > Reimport


步骤6:添加maven dep

将您的两个依赖项添加到pom.xml


第8步:构建你的项目

启动您的项目。



这应该行得通。

在包含父pomx.mxl文件的目录中运行maven命令"mvn-dependency:tree",您可以在其中找到2.5.4。也许你添加了其他同样导入2.5.4版本的jar,那么你应该排除2.5.4版本。

您还可以检查本地Maven存储库,并删除2.5.4版本的Jackson。

我的一个依赖项也遇到了类似的问题。我转到.m2/repository目录,手动删除了那里不需要的依赖项。我只在m2目录中保留了我想要的版本。然后我使缓存无效,并重新启动IntelliJ IDEA。这似乎解决了问题。

这是一篇旧帖子,但以防万一,在新版本(2023.1.2)中对我有效的是手动删除缓存的错误版本。可以通过完成

  1. 在项目层次结构中找到";外部图书馆";以及其中错误的依赖性
  2. 右键单击->打开库设置(或左键单击->F4)
  3. 这将打开";项目结构/图书馆";(ctrl+shift+alt+s),并在列表中选择依赖项
  4. 点击"-"图标位于列表顶部。证实Reimport maven和它应该下载正确的版本

相关内容

最新更新