在IntelliJ IDEA中导入Maven依赖项

Zau*_*yev 192 java intellij-idea maven-3 maven

我有一个关于IntelliJ IDEA 11的小问题.我刚刚从subversion导入了一个项目 - 它是一个maven项目.但我在maven库依赖项中遇到问题,因此我无法自动包含所有maven依赖项 - IDEA仅在我打开该类时显示依赖项错误/这就是我在这里得到的:

在此输入图像描述

所以我想要自动添加所有依赖项 - 这是可能的还是我必须通过所有类文件来识别和添加maven依赖项?!

更新:在做了一些修改后,我发现了如何以某种方式解决我的问题.多数民众赞成我所做的: 在此输入图像描述

但我认为逻辑上它不会包含并检查前面的新依赖项?!...在intelliJ中是否有任何设置区域 - 自动导出依赖于类路径?

Alo*_*uez 265

只要您的POM符合并且所有依赖项都可用,IntelliJ就会自动下载并将所有依赖项添加到项目的类路径中.

将Maven项目导入IntelliJ时,通常会出现一个信息框,询问您是否要为Maven项目配置自动导入.这意味着如果您对POM进行任何更改,那么这些更改将自动加载.

您可以启用此类功能转到文件>设置> Maven>导入,有一个复选框,显示"自动导入Maven项目".

如果这没有帮助,那么我建议进行全面清理并重新开始:

  • 关闭项目窗口(和IntelliJ)并删除所有*.iml文件和所有.idea文件夹(每个模块应该有一个)
  • 运行mvn clean install命令行
  • 将项目重新导入IntelliJ并在要求您启用自动导入时注意

IntelliJ 2016更新:

导入Maven项目自动设置已被转移到建立,执行,部署>生成工具>的Maven>导入你的IntelliJ偏好.

  • 您可以在首选项/设置中启用自动导入.打开首选项/设置并搜索"自动导入maven项目".它位于构建,执行,部署>构建工具> Maven>导入下 (2认同)
  • @JustinBlank并不感到惊讶,因为这是2012年的答案.设置仍然存在,他们只是被移动到其他地方(答案已经更新). (2认同)

rog*_*ack 64

以为我会在这里扔掉0.02美元:对我来说,解决这个问题的方法就是去

文件[菜单] - >设置 - > maven - >导入和取消选中 "使用maven3导入项目"

参考:http://youtrack.jetbrains.com/issue/IDEA-98425(可能还有其他一些想法)

更新:再次使用IntelliJ 15再次进入此状态,此时无法使用"使用maven3导入"选项.原因是有时IntelliJ"不能正确解析maven依赖",如果它无法正确解析其中一个,它显然会放弃所有这些依赖.您可以通过打开maven项目工具窗口(查看菜单 - >工具窗口 - > Maven项目)来判断是否是这种情况.然后展开你的一个maven项目及其依赖项.如果依赖项都用红色加下划线,"休斯顿,我们遇到了问题". 在此输入图像描述

实际上,您可以通过鼠标悬停在项目名称本身上来查看真正的失败.

在此输入图像描述

在我的情况下它说:"问题:可供XXX任何的版本"或"无法读取神器org.xy.z描述符" REF:https://youtrack.jetbrains.com/issue/IDEA-128846https://开头youtrack.jetbrains.com/issue/IDEA-152555

在这种情况下,我似乎正在处理一个没有相关pom文件的jar(在我们的maven nexus repo中,以及我的本地存储库).如果这也是你的问题,"urrent work around:如果你实际上不需要在你自己的代码中使用那个jar中的类(例如只有传递maven依赖),你实际上可以从pom中将它注释掉(暂时),maven项目重新加载,然后取消注释.在那之后,IntelliJ"记住"它的旧工作依赖项.如果你从传递的依赖链中遇到它,那么暂时添加maven transitive exclude也可能会这样做. "

另一件可能有用的事情是使用maven的"更新版本"而不是捆绑的3.0.5.为了将其设置为默认使用,关闭所有intellij窗口,然后打开首选项 - >构建,执行和部署 - >构建工具 - > maven,并更改maven主目录,它应该说"默认项目"在你调整它时在顶部,尽管你也可以为特定项目调整它,只要你在调整后"重新导入".

其他可能有用的东西:删除你的intellij缓存文件夹(windows:HOMEPATH /.{IntellijIdea,IdeaC} XXX linux~/.IdeaIC15)和/或卸载并重新安装IntelliJ本身.GL!

  • 在v14终极版中,我选择了一个外部专家,一切都恢复了工作. (3认同)
  • 奇怪的是,几乎所有其他帖子都建议选中“使用Maven3导入项目”选项来解决此问题,而实际上不选中它会为我解决问题。为什么?我不知道。谢谢! (2认同)

小智 32

导入项目时,请选择pom.xml而不是项目目录.它应该工作.

  • 也许这是最优雅、最干净的解决方案(而且有点尴尬,intellij 无法帮助您猜测) (2认同)

Cra*_*der 20

尝试从IntelliJ IDEA中的Maven Projects面板重新导入项目.它应该下载并配置pom.xml自动定义的所有依赖项.

如果由于某种原因下载无法从IDEA运行,请尝试mvn install从命令行查看是否可以获取依赖项.

当然,必须直接在pom.xml文件中定义所有必需的依赖项和任何自定义存储库.


Pau*_*ack 14

对于IntelliJ 2016-2.4(我相信其他新版本):

查看>工具窗口> Maven项目

在新显示的工具栏中,选择Maven设置(工具集的图标).

此屏幕打开后,展开Maven菜单并单击"导入"

在这里,单击"自动导入Maven项目".还要确保'JDK for Importer'选项与您要使用的JDK版本匹配.

单击确定.现在转到pom.xml中的红色依赖项,选择红色灯泡,然后单击"更新Maven索引".


Ana*_*iuk 8

是什么帮助了我:

Navigage:设置| 构建,执行,部署| Maven的

指定"Maven主目录" - 安装maven的位置


Yas*_*N P 8

我遇到了同样的问题并尝试了这里提到的所有答案,但都没有奏效。

简单的解决方案是转到您的项目文件夹并删除所有 .idea 和 .iml 文件并重新启动 IntelliJ ide。有用。无需对设置进行任何操作。


Udo*_*Udo 7

如果某些maven模块没有编译检查他们的pom.xml是否在"被忽略的文件"列表中.在IntelliJ goto中

首选项 - >项目设置 - > maven - >忽略文件

并检查是否忽略相关的pom.xml.


Mar*_*zee 5

创建新项目时,您只需选择以下选项:

...
从外部模型导入项目
在现有外部模型(Eclipse、Maven ...)上创建 IDEA 项目结构
...

从那里你会发现它非常直接。
在您的情况下,您可以关闭项目并简单地创建一个新项目。选择您的项目目录,该目录将覆盖它,使其成为 Maven 项目。


Jan*_*ano 5

如果多次导入相同的路径,导入 Maven 依赖项可能不起作用。这可能会在导入现有的 Maven 项目后自动发生。我无法弄清楚为什么会发生这种情况,所以我倾向于认为这是一个错误。

例如,如果我的项目是

hibernate
  src/main
  src/test
Run Code Online (Sandbox Code Playgroud)

这三个路径可以作为顶级节点导入:

hibernate
src/main
src/test
Run Code Online (Sandbox Code Playgroud)

如果是这种情况,则依赖项似乎是正确的,但除非您删除多余的路径(在本例中为src/mainsrc/test),否则它们不会被使用。完成此操作后,刷新并单击 Build > Rebuild Project。IDEA 将获取依赖项。

此问题的一个症状是,当您手动检查库时,IDEA 会警告您路径重复(问题中的第二个屏幕截图)。

如果需要,有多种方法可以重新读取依赖项。如果您转到“Maven Projects”选项卡,则选项卡左上角有一个“Reimport All Maven Projects”图标。如果您怀疑 IDEA 感到困惑,您可以单击 File > Invalidate Caches。


Pra*_*ams 5

打开IntelliJ Idea,转到 文件>其他设置>默认设置...> Maven(首选项)>导入 或| Preferences > Maven > Importing

在此输入图像描述

单击控制台中的" 启用自动导入 ".

在此输入图像描述


小智 5

首先检查为用户设置文件指定的路径Settings -> Build,Execution,Development -> Build Tools -> Maven 中。该字段应具有您的 Maven的settings.xml的路径。此外,settings.xml 应该具有正确的远程存储库路径。


xma*_*mar 5

IntelliJ 2020.3.3

这个人为我做到了。

构建、执行、部署 > 构建工具。

更改“构建脚本更改后重新加载项目”:

  • 从默认的“外部更改”到“任何更改”

在此输入图像描述

这样,项目需要一段时间才能重建,但现在我可以在 IntelliJ 中看到 Maven 依赖项:

在此输入图像描述