Intellij IDEA 无法识别 Maven 依赖项中指定的类

Posted

技术标签:

【中文标题】Intellij IDEA 无法识别 Maven 依赖项中指定的类【英文标题】:IntellijIDEA not recognizing classes specified in Maven dependencies 【发布时间】:2013-02-09 09:41:44 【问题描述】:

我在 IntellijIDEA 中有一个使用 Maven 创建的项目。然后我在 Pom.xml 文件中指定了一组依赖项和外部存储库。

如果我执行“mvn install”,该项目在命令行上构建良好。当我在 IDE 中打开任何代码文件时,尽管它说所有由 Maven 依赖项处理的类都无法识别 - 如果我从未将所需的 JAR 添加到构建路径中,那么对于普通项目就会如此。

我知道在我的 Eclipse Maven 项目(而不是 IntelliJ)中,它通常会在左侧显示一个额外的目录,上面写着“Maven 依赖项”,并列出了通过 maven 拉入的 JAR。我在这里看不到。我做错了什么?


我的屏幕如下所示:

【问题讨论】:

您是否在 intellij 的项目配置中启用了 maven?只需展开 maven 面板,可能在屏幕的右侧。 你是否在你的IDEA中启用了Maven插件? 另外,请检查 Maven 主目录是否在 Settings/Maven 下正确设置。 尝试从 IDEA Maven Projects 工具窗口重新导入项目。 另见***.com/questions/11454822/… 【参考方案1】:

由于某种原因,重新导入没有奏效。看完之后:

http://www.jetbrains.com/idea/webhelp/maven-importing.html

我设置了自动导入,然后问题就消失了;希望它可以帮助别人。感谢大家的想法:)。

【讨论】:

我选择了自动导入,但仅对一个模块就失败了。然后我发现在maven设置下,文件中选择了模块的pom.xml要忽略。取消选中它,它工作。希望这可以帮助某人。 (IntelliJ 14,顺便说一句) “我设置了自动导入”。那是什么意思?有几个设置听起来像这样。你到底设置了什么? 当你导入一个 maven 项目时,它总是在 IDE 的右上角用一个气泡询问你是否要启用自动导入(用这些话来说)。我已经在多台计算机上完成了它,现在通过许多 IntelliJ 版本,它始终存在。这将使它在找到它们时开始导入所有缺少的 maven 依赖项。【参考方案2】:

在新计算机上安装 IntelliJ IDEA 后,我发现自己遇到了同样的问题。

我必须更新远程 Maven 存储库。 (Settings > Maven > Repositories)

本地和远程存储库都需要更新。遥控器在此之前从未更新过。重新启动后一切正常。您可能需要重新导入您的项目。

【讨论】:

本次更新后重启还是不行,需要重新导入项目才能正常工作。【参考方案3】:

你可以去:

文件 > 设置 > 构建、执行、部署 > 构建工具 > Maven

并检查您的 pom.xml 是否不在“Ignored Files”列表中。

【讨论】:

我在忽略列表中看到了我的 pom.xml,但我如何再次包含回来? 是的,这就是我发现的问题。我不知道那个盒子是怎么被检查的。它之前显然没有被检查过,然后它被检查过,而且我以前从未访问过那个选项屏幕。就像 IntJ 刚刚决定开始设置自己的设置一样。闹鬼的IDE? 谢谢。我有同样的问题。我认为如果您选择从 git 中排除文件夹结构,Intellij 也会将其从 Maven 中排除。【参考方案4】:

在pom.xml上右击->添加为Maven项目->重新导入

【讨论】:

是的,如果这有效,嗯?但事实并非如此,在 90% 的情况下都会发生此错误。多年来一直如此。老实说,我开始相信 JetBrains 无能。多年来,这种情况连续发生在我、朋友和同事身上。真可惜。 在 IntelliJ IDEA 2020.2.2(终极版)Build #IU-202.7319.50 中为我工作,构建于 2020 年 9 月 14 日【参考方案5】:

我遇到了类似的问题。对我来说,最终是我错误地导入了项目。我一直在做

import project
    <navigate to existing project and click top level directory>
    follow the wizard

解决我的 maven 问题的方法是做

import project
    <navigate to existing project and click the pom.xml
    follow the wizard

【讨论】:

JetBrains 的人声称已经通过导入 maven 项目解决了这个问题。他们说现在如果您选择***目录 IntelliJ 会注意到它是一个 Maven 项目并正确导入它。在 IJ 2018.3 中为我工作【参考方案6】:

对我来说文件>>无效缓存/重新启动>>无效和重新启动在 IntelliJ 中工作

【讨论】:

【参考方案7】:

idea无法使用maven下载所有依赖的jar包,请尝试以下操作:

mvn -U idea:idea

然后所有依赖的jar包都从maven仓库下载

【讨论】:

【参考方案8】:

通过 Intellij 对存储库进行简单的重新导入和/或更新对我来说不起作用。

相反,我不得不删除完整的~/.m2/repository 目录,让 maven 自行整理所有内容。后来Maven -&gt; Reimport完成了。

【讨论】:

simple maven -> 在我的情况下重新导入【参考方案9】:

几天前遇到了“相同”的问题。这可能与我的问题无关,因为我的问题更具体到 Spring boot,但是当我努力解决它并尝试了这篇文章中的所有解决方案时,我将分享我的经验。

我想做的是将我的一个 Spring Boot 应用程序作为 Maven 依赖项添加到另一个项目中。依赖关系已解决,但我无法访问我的课程。

当没有声明打包时,Maven 假定默认打包是 JAR。 Spring Boot Maven Plugin 生成的 JAR 会覆盖 Maven 生成的默认 JAR。

解决办法是:

我们找到的解决方案是生成另一个 JAR,该 JAR 将用作从其他项目导入的依赖项。

完整的article 帮助我解决了我的问题。

希望对某人有所帮助。

【讨论】:

【参考方案10】:

在将我的 maven 项目重构为不同的模块后,我遇到了类似的问题。自行重新导入通常不起作用,但我发现删除 .iml 文件然后重新导入通常可以解决问题。

【讨论】:

JetBrains 应该感到羞耻。这个错误多年来一直存在。 根据 IntelliJ IDEA 2021.1.1 仍然正确。退出 IntelliJ,删除 .idea 中的 *.iml 文件,再次打开 IntelliJ,然后对 pom.xml 文件运行 rescan【参考方案11】:

出于我不明白的原因,就我而言,我需要在构建、执行、部署 > 构建工具 > Maven 中设置“始终更新快照”。

这使得 IntelliJ 重新下载依赖项并使其工作。

【讨论】:

【参考方案12】:

在我的情况下,问题是项目位于 maven2 中,而 intellj 配置为 maven3。在设置中切换到maven2解决了问题

【讨论】:

【参考方案13】:

可能对像我一样被困的其他人有用。 建议的修复都没有奏效。实际上,在我解决了我的主要问题之前,我的主要问题是 maven 的安装位置。

就我而言,我没有使用标准位置。在 Maven 设置(Settings/Maven/Maven 主存储库)中更改该位置就可以了。

我的 2 美分。

【讨论】:

【参考方案14】:

缓存导致问题!确保执行以下操作:

在您的终端中,转到项目/模块:

mvn clean install

在您的 IntelliJ 中:

    文件 > 使缓存无效 > 无效

    右键单击项目/模块 > Maven > 重新导入

【讨论】:

【参考方案15】:

就我而言,我应该离线检查工作

转到文件>设置>构建、执行、部署>构建工具>Maven 然后检查脱机工作

【讨论】:

出于荒谬的原因,这真的对我有用 O_o【参考方案16】:

在将 Intellij 升级到 1.4.15 后,这也发生在我身上。我尝试以相同的结果重新导入整个项目,但启用 Maven 自动导入可以解决问题。

【讨论】:

【参考方案17】:

看起来有几个合理的理由可以解释为什么 intelliJ 会忽略 pom 文件。 以前的答案在我的情况下都不起作用,所以这是起作用的,以防其他人遇到这个问题:

在此示例中,模块 3 被 IntelliJ 完全忽略。该目录中的 pom.xml 甚至没有被视为 maven pom。

我的项目结构是这样的:

myProject
    module1
    module2
    module3

但是,我的(简化的)pom 结构是这样的:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>devs</groupId>
    <artifactId>myProject</artifactId>
    <version>0.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>myProject</name>

    <modules>
        <module>module1</module>
        <module>module2</module>
    <modules>

    <profiles>
        <profile>
            <id>CompleteBuildProfile</id>
            <modules>
                <module>module3</module>
            </modules>
        </profile>
    </profiles>
</project>

为了解决这个问题,我修改了根 &lt;modules&gt; 元素以临时添加到 module3 中。

    <modules>
        <module>module1</module>
        <module>module2</module>
        <module>module3</module>
    <modules>

接下来重新导入根 pom,IntelliJ 将添加模块。 完成后,恢复 pom。 IntelliJ 会询问您是否还想从项目结构中删除 module3。点击No

砰!完毕。 Module3 工作,我可以再次从 IntelliJ 运行我的集成测试:D

【讨论】:

【参考方案18】:

问题是我在第一次启动 IntelliJ 时选择要导入的项目目录而不是项目的 pom.xml 文件引起的。

关闭有问题的项目,然后再次执行导入过程,但选择 pom.xml 会在 IDE 中生成一个完全正常工作的项目。

【讨论】:

【参考方案19】:

对我来说,问题似乎与 maven 助手插件 (https://plugins.jetbrains.com/plugin/7179?pr=idea) 有冲突。

我禁用它,它又可以工作了:)

【讨论】:

【参考方案20】:

转到 文件 > 设置 > 构建、执行、部署 > 构建工具 > Maven 并检查 Maven 主目录。这应该与用于命令行的 maven 安装相同

【讨论】:

【参考方案21】:

对我来说,诀窍是在文件 > 项目设置 > 模块 > 依赖项中添加依赖项。

【讨论】:

它应该自动添加依赖项,但它没有添加,mvn install print build success 但不知何故Intellij社区没有将依赖项添加到类路径。【参考方案22】:

只需删除您项目的 .idea 文件夹,然后在 IntelliJ 中重新导入您的项目。

【讨论】:

【参考方案23】:

如果您在 pom.xml 中有任何特定于您的组织的依赖项,那么您需要为您的项目更新 setting.xml 的路径,该路径默认设置为您在 Ubuntu 中的用户目录:/home/user/.m2/settings .xml ->(将其更改为您的 apache-maven conf 路径)

转到 -> intellij 设置 -> 构建、执行、部署 -> 构建工具 -> Maven -> 用户设置文件

【讨论】:

【参考方案24】:

重新启动,无效缓存,外部建筑,没有一个对我有用。

最后只有重新导入起作用了。为别人着想,把它作为答案:

Right click the project > Maven > Reimport

【讨论】:

【参考方案25】:

在导入新项目时:

1.将项目中的所有模块识别为maven模块: 文件--->新建项目设置-->构建执行部署-->构建工具--> maven ---> 导入---> 启用“递归搜索项目”

【讨论】:

【参考方案26】:

选项1:右键单击主项目文件夹=>添加框架支持=>检查Maven选项

选项2:在pom.xml文件上右击,点击“Add as a maven project”

【讨论】:

【参考方案27】:

这发生在我从 Java 8 升级到 11 和 Spring 版本时。 maven 部分中的所有依赖项都消失了,就好像不存在 pom 文件一样。能够通过这样做找到问题

mvn clean

它告诉我其中一个依赖项缺少版本标记,它需要一个。

<dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
</dependency>

将版本添加到上述依赖项后,它开始显示 maven 部分下的所有依赖项。

【讨论】:

以上是关于Intellij IDEA 无法识别 Maven 依赖项中指定的类的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ IDEA 无法正确识别 Module

解决IntelliJ idea的maven工程提示的Cannot Resolve Symbol

如何解决IntelliJ idea的maven工程提示的Cannot Resolve Symbol

IntelliJ idea的maven工程老是提示:Cannot Resolve Symbol ......

IntelliJ IDEA 无法识别属性文件

IntelliJ IDEA无法更新maven索引