Intellij Idea + Maven:依赖版本在运行时出错

时间:2015-12-27 14:20:33

标签: java maven intellij-idea

这让我发疯了。最初我将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>

编写代码时,我可以看到新版本的功能。此外,当我在模块和工件下进行项目设置时,所有内容都表示杰克逊2.6.4。

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

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

,输出为2.5.4 ......

我重建了项目,重新导入了依赖项并重启了intellij几次.... 请帮忙......

3 个答案:

答案 0 :(得分:1)

第1步:

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


第2步:删除maven依赖

从`pom.xml'文件中删除两个依赖项。 (不要注释掉,删除线条。)


第3步:检查Intellij项目配置

打开project structure窗口(在Intellij顶部父文件夹上的clic,然后按F4),然后转到Libraries标签。确保两个依赖项不存在,如果有,也删除它们(顶部带有“ - ”按钮)。


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

转到您的主文件夹,对于Windows:C:\Users\<YOUR_NAME>\.m2\,此处删除存储库文件夹。


第5步:重新导入项目

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


第6步:添加maven dep

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


第8步:构建项目。

启动您的项目。



这应该有用。

答案 1 :(得分:0)

运行maven命令&#34; mvn dependency:tree&#34;在包含父pomx.mxl文件的目录中,您可以找到2.5.4那里。也许您添加其他罐也导入版本2.5.4,然后您应该排除2.5.4版本。

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

答案 2 :(得分:0)

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