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 -> 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>
为了解决这个问题,我修改了根 <modules>
元素以临时添加到 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的maven工程提示的Cannot Resolve Symbol
如何解决IntelliJ idea的maven工程提示的Cannot Resolve Symbol