【问题标题】:IntelliJ not updating updated Maven dependenciesIntelliJ 未更新更新的 Maven 依赖项
【发布时间】:2016-02-16 02:21:24
【问题描述】:

我之前在项目 A 中使用过 commons-io 中的 version 1.3.2。在项目 B 中,我使用了最新的 version 2.4。现在我想将项目 B 的 JAR 作为库添加到项目 A。由于项目 B 使用 commons-io 1.3.2 版中尚不存在的功能,我更新了项目 A 的 pom.xml 以将 2.4 版用于 commons -io:

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>

现在,当我尝试在项目 A 中运行调用项目 B 中的库的代码时,我得到了

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.deleteQuietly(Ljava/io/File;)Z

因为IntelliJ 似乎没有意识到库已经更新。

我尝试了re-importing the Maven dependencies 并删除了包含commons-io 库C:\Users\Name\.m2\repository\commons-io 的本地目录,但这也不起作用。如何解决此问题并让 IntelliJ 了解更新的类,例如 FileUtils?例如,他们的反编译器在我查看定义时仍然向我显示旧的字节码版本,但它应该根据pom.xml 更新它。

顺便检查了import Maven projects automatically

【问题讨论】:

  • 你能在 IntelliJ 中检查你的 maven 配置以检查你是否有正确的本地 repo 吗?之后,再次删除commons-io目录,确认没有了,然后回到idea,再次点击maven窗口的reimport按钮。然后,检查 commons-io 目录是否已重新创建并查看它包含的内容。如果它比您预期的要多,请在命令行上尝试 mvn dependency:tree,并检查 commons-io 依赖项,看看您是否了解每个版本的来源。然后,在此处报告您的结果。
  • @EngineerDollery:我解决了这个问题。从项目 B 导出的 JAR 实际上包含一个旧版本的 commons-io,因为它是捆绑的,所以它的优先级高于项目 A 中的那个。

标签: java maven intellij-idea


【解决方案1】:

右键单击项目,转到 Maven -> 重新导入。这应该会显示所有 Maven 导入并更新所有新 jar。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 2010-11-01
    • 2017-04-21
    • 2016-05-23
    • 1970-01-01
    相关资源
    最近更新 更多