227

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

在此处输入图像描述

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

更新:做了一些修改后,我发现如何以某种方式解决我的问题。这就是我所做的: 在此处输入图像描述

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

4

38 回答 38

307

IntelliJ 应该自动下载所有依赖项并将其添加到项目的类路径中,只要您的 POM 兼容并且所有依赖项都可用。

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

您可以通过 File > Settings > Maven > Importing 启用此类功能,有一个复选框显示“自动导入 Maven 项目”。

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

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

IntelliJ 2016 更新

自动导入 Maven 项目设置已移至IntelliJ 首选项中的构建、执行、部署 > 构建工具 > Maven > 导入

于 2012-07-13T08:59:16.617 回答
73

在 IntelliJ 14 之前修复

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

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

修复 IntelliJ 15+

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

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

在此处输入图像描述

在我的例子中,它说“问题:没有可用于 XXX 的版本”或“无法读取工件 org.xy.z 的描述符”参考:https ://youtrack.jetbrains.com/issue/IDEA-128846 和 https:// youtrack.jetbrains.com/issue/IDEA-152555

在这种情况下,我似乎在处理一个没有关联 pom 文件的 jar(在我们的 maven nexus 存储库中,以及我的本地存储库中)。如果这也是您的问题,“当前的解决方法:如果您实际上不需要在自己的代码中使用该 jar 中的类(例如仅传递 maven 依赖项),您实际上可以从 pom 中注释掉它(暂时),maven项目重新加载,然后取消注释它。不知何故,在那之后IntelliJ“记住”它的旧工作依赖项。临时添加一个maven传递排除也可能这样做,如果你从传递依赖链中遇到它。 "

可能有帮助的另一件事是使用比捆绑的 3.0.5 的“更新版本”的 maven。为了将其设置为默认使用,关闭所有 intellij 窗口,然后打开首选项 -> 构建、执行和部署 -> 构建工具 -> maven,然后更改 maven 主目录,它应该说“默认项目”在您调整它时位于顶部,尽管您也可以针对特定项目调整它,只要您在调整后“重新导入”即可。

清除缓存

删除您的 intellij 缓存文件夹(Windows:HOMEPATH/.{IntellijIdea,IdeaC}XXX linux ~/.IdeaIC15)和/或卸载并重新安装 IntelliJ 本身。这也可以通过转到 File [menu] -> 来完成Invalidate Caches / Restart...。单击invalidate and restart。这将重新索引您的整个项目并解决 IntelliJ 的许多难以追踪的问题。

于 2014-07-22T16:25:20.413 回答
42

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

于 2015-11-13T04:30:49.160 回答
30

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

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

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

于 2012-07-12T15:17:20.970 回答
19

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

查看 > 工具窗口 > Maven 项目

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

当此屏幕打开时,展开 Maven 菜单并单击“导入”

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

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

于 2016-10-18T01:43:19.740 回答
12

对我有什么帮助:

导航:设置 | 构建、执行、部署 | 马文

指定“Maven 主目录”——你安装 maven 的地方

于 2016-03-31T15:10:44.910 回答
8

如果某些 maven 模块未编译,请检查它们的 pom.xml 是否在“忽略的文件”列表中。在 IntelliJ 中转到

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

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

于 2014-06-18T09:07:24.467 回答
8

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

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

于 2019-05-06T07:54:52.653 回答
7

打开IntelliJ Idea,转到 File > Other Settings > Default Settings... > Maven (Preferences) > Importing or| Preferences > Maven > Importing

在此处输入图像描述

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

在此处输入图像描述

于 2014-09-26T16:00:42.073 回答
5

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

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

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

于 2012-11-12T19:06:43.833 回答
5

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

例如,如果我的项目是

hibernate
  src/main
  src/test

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

hibernate
src/main
src/test

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

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

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

于 2013-02-24T08:58:23.370 回答
5

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

于 2018-04-23T06:15:50.897 回答
4

进入您的项目结构,在项目设置、模块下,选择依赖关系表。对于每个依赖项,将范围从“测试”更改为“编译”。

于 2014-02-21T20:48:38.193 回答
4

如果在右下角显示“2 个进程正在运行...”或类似内容,您可能只需要等待它完成,因为下载所有 jar 可能需要一些时间。

于 2014-09-04T00:04:00.320 回答
4

我有一个类似的问题,在我的情况下,我使用的settings.xml是不是从 IntelliJ 挑选的自定义。

解决方案:(
File > Settings > Build, Execution, Deployment > Maven: User settings file在这里选择我的自定义 settings.xml)。

于 2018-09-05T11:21:15.400 回答
4

重新导入项目。如果你安装了 maven 插件,你可以使用它。

右键单击项目 -> Maven -> 重新导入

于 2015-10-26T09:13:10.510 回答
3

我遇到了一些子依赖项在 IntelliJ 2016.3.X 中无法解决的问题。这可以通过将Maven home directorySettings > Build, Execution, Deployment > Build Tools > Maven 从Bundled (Maven 3)更改为 来解决/usr/share/maven

之后,所有子依赖项都像以前的 IntelliJ 版本一样得到解决。

于 2017-01-24T13:57:56.293 回答
3

因此,我在组织的许多代码库中也面临着这个问题。除了上面建议的答案之外,我们还可以调整 jvm 的分配池内存。这是因为,大型代码库中引入的依赖项的数量可能会让 jvm for IDE 无法完全构建项目。因此尝试增加 XMX 值并且它起作用了!添加 -Xmx3072 以解决 IntelliJ 中“未构建”我的 Java 项目的问题

在此处输入图像描述

于 2021-05-10T12:07:05.350 回答
2

从项目目录中删除 .idea 文件夹,然后将项目重新导入为 Maven 项目对我有用。

于 2018-10-30T15:47:19.277 回答
2

我的 macbook 也有类似的问题,只是做了一点小改动pom.xml,它开始下载所有依赖项:

早期的依赖项为我的 Windows 机器编写如下:

<dependencies>
 <dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>
</dependencies>

我刚刚删除了<dependencies>and</dependencies>标签,它开始下载所有依赖项:

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>

我不确定它是否适合你..但对我来说很好。

谢谢

于 2018-09-01T03:42:15.683 回答
2

Maven - 重新导入对我不起作用。我在 STS(Eclipse)中有 Spring 项目,我的解决方案是将项目导入 IDEA,如下所示:

1)文件 - 新建 - 来自现有源的项目... - 选择目录 - 选择 Eclipse。
2) 在设置中将 Maven 自动导入设置为 true。
3) 然后右键单击 pom.xml 并选择 Add as Maven Project。

在此之后,它已经导入了所有内容。

于 2017-07-14T21:35:46.473 回答
2

就我而言,MAVEN 使用的 JAVA 路径未设置为机器上配置的 JAVA_HOME。因此,它甚至没有尝试下载依赖项。我遵循的步骤解决了这个问题,

  1. 检查 JAVA 路径,设置 >> 构建 >> 构建工具 >> 导入 >> JDK for importer。将其指向 JAVA_HOME。

  2. mvn clean install -U

    使用上述命令强制下载依赖项。

  3. 重新导入 Maven 项目

于 2019-06-28T10:11:55.523 回答
1

我通过使用正确的镜像配置更新我的 settings.xml 文件解决了这个问题,似乎每次导入 maven 模块时,intellij 都会尝试从存储库下载元数据。

于 2014-12-08T07:18:55.133 回答
1

劫持一点以添加最终对我有用的东西:

进入Maven ProjectsIDE 右侧的边栏,并验证您的依赖项是否正确列在您的模块下。假设它们是,只需让 IDEA 重新导入(顶部的第一个按钮,看起来像两个蓝色箭头形成一个逆时针圆圈)。

一旦我这样做了,并让 IDEA 为我重新加载项目,我所有的依赖项都被神奇地理解了。

供参考:这是与IDEA 13.1.2

于 2015-08-14T14:29:48.897 回答
1

您可能在公司的内部网络下工作。

如果是这样,要下载或添加外部 Maven 依赖项,您的settings.xml文件user/<username>/.m2夹下的文件可能需要更新。

请联系您的管理员以提供正确的settings.xml文件,然后将其粘贴到您的.m2文件夹中。

于 2019-06-25T10:22:50.273 回答
1

就我而言,由于某种原因,其中一个模块被忽略了。要解决这个问题:右键单击有问题的模块并选择“Unignore Projects”。

忽略项目示例

于 2019-01-28T13:04:19.363 回答
1

我遇到了同样的问题并尝试了所有没有解决问题的建议,我使用的是 Intellij 版本 13.1.3

最后在花了几个多小时试图修复它之后,我决定尝试升级版本并在 14.1.4 版本中打开项目,最终解决了这个问题。我认为这可能是以前版本中的一个错误。

我希望这有帮助!

于 2016-04-12T20:30:02.707 回答
1

我能够通过从项目设置-> 模块列表中删除不必要的模块来解决它。

在此处输入图像描述

事实证明,当我通过从项目文件夹(而不是打开 pom.xml)导入来创建 IntelliJ 项目时,IntelliJ IDEA 自动创建了这些附加模块。然后,在将项目声明为 Maven 项目后,创建了适当的模块,并且现有模块与它们发生冲突。也可以在项目创建期间排除这些模块。

于 2018-09-05T10:43:11.453 回答
1

无效缓存对我有用:

文件 > 使缓存无效

检查:

清除文件系统缓存和本地历史
清除下载的共享索引

然后无效并重新启动

于 2021-04-27T03:29:13.753 回答
0

如果一切都失败了,请检查本地 .m2 存储库中的 jar 文件是否确实有效且未损坏。就我而言,该文件尚未完全下载。

于 2017-02-11T22:05:09.773 回答
0

在 Maven 中,当我删除了dependencyManagement xml 部分并且直接在项目部分下有依赖项时,依赖项为我包括在内

于 2016-03-28T09:54:07.833 回答
0

此问题的一种可能模式是您没有与 Nexus 的连接,基本上您想在离线模式下构建项目。但是,当您导入项目时,Idea 会尝试自动下载 Maven 依赖项......但失败了。您在“设置”中设置了“脱机工作”复选框,但为时已晚:在初始下载尝试期间某些内容已损坏。此处列出的两个选项都不能帮助我解决这个问题。相反,我做了以下事情:

  1. 首先创建空 Java(不是 Maven)项目
  2. 选中 Maven 设置中的脱机工作选项
  3. 将我的项目作为 Maven 模块添加到这个新项目中

这样它就起作用了。

于 2020-11-03T20:36:30.000 回答
0

re-import-maven -> close-intellij -> delete-the-entire - .idea-folder -> re-open-the-project -> build -> build-project/build-module- '你的父模块'

于 2019-10-26T11:34:08.290 回答
0

我可以通过在 pom.xml 文件中的构建标记之后添加这行代码来修复我的问题,我将它与我正在运行的项目进行了比较,发现这就是区别,现在我一切都好。

<repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>
于 2019-06-20T15:06:34.047 回答
0
  1. 从 maven 选项卡单击 + 并选择 pom.xml
  2. 从 Maven 选项卡单击下载源和文档
  3. 在项目结构(您可以在其中查看项目文件/目录)上,右键单击您要构建的项目并选择构建模块项目名称。
  4. 从选项卡运行 - 使用 + 添加应用程序编辑配置并填写以下字段: i. 主类 - 从项目选项卡中手动选择主类 ii。使用模块的类路径 - 选择应用程序名称 iii。缩短命令行 - 类路径文件
  5. 现在只需运行该应用程序。
于 2019-12-05T22:02:01.030 回答
0

问题似乎是尽管在 pom.xml 中列出了您的依赖项,但 IntelliJ IDEA 在您运行项目时不会重建这些依赖项。

对我有用的是:

转到“运行”->“编辑配置...”,找到您的应用程序,确保“启动前:”部分已展开,单击绿色加号,然后选择“构建项目”。

在此处输入图像描述

于 2017-10-14T08:32:11.287 回答
0

IntelliJ 2020.3.3

这个是为我做的。

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

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

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

在此处输入图像描述

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

在此处输入图像描述

于 2021-06-18T13:57:31.217 回答
0

解决方案: -

  1. 转到文件 -> 设置 -> maven -> maven 主路径
  2. 在那里你会发现捆绑的(maven 3)类似的东西选择maven的适当主路径,其中maven文件存在于系统中(环境变量中给出的路径)
  3. 点击申请
  4. 刷新项目。
于 2022-01-13T09:34:44.933 回答