【问题标题】:IntellijIDEA not recognizing classes specified in Maven dependenciesIntellij IDEA 无法识别 Maven 依赖项中指定的类
【发布时间】: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 工具窗口重新导入项目。

标签: java maven intellij-idea


【解决方案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 中:

              1. 文件 > 使缓存无效 > 无效

              2. 右键单击项目/模块 > 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 部分下的所有依赖项。

                                    【讨论】:

                                      猜你喜欢
                                      • 2021-04-16
                                      • 2017-07-18
                                      • 1970-01-01
                                      • 2023-01-18
                                      • 2017-02-14
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      相关资源
                                      最近更新 更多