Intellij Idea无法解决Maven中的任何问题


130

我是Intellij Idea的新手,我只是使用导入了一个项目pom.xml,但ide在Maven依赖项中未解决任何问题。

pom.xml导入代码时在依赖项中定义的任何内容都会引发错误cannot resolve symbol xxxxx

但是,mvn install将工作,我尝试进口的依赖于Project Settings/Libraries.jar的文件,那么它的工作原理,但可以在定义的IDE决心库pom.xml?我不想每次都这样做。

附加信息:

IDEA版本:12.0.3,操作系统:Windows 7,重新导入不起作用,maven版本:3.0.4,Exernal Libraries下不存在maven依赖项。

在idea.log中没有例外...


IDEA版本?idea.log中是否有任何相关的例外?Maven版本?您使用什么操作系统?重新导入按钮在Maven Projects工具窗口中是否可用?您是否在中的External Libraries节点下看到依赖项Project View
CrazyCoder

IDEA版本:12.0.3,操作系统:Windows 7,重新导入不起作用,maven版本:3.0.4,Exernal Libraries下不存在maven依赖项。
2013年

idea.log中没有例外...
爆破

试用IDEA 12.1,在|中启用Maven 3。| ,网络配置也可能会影响它SettingsMavenImporting
CrazyCoder

感谢您的回答,它现在可以工作,但是仍然存在一个问题:在tomcat中运行时,scope = system的依赖项将不会部署。
2013年

Answers:


118

在IntelliJ 12.1.4中,我仔细检查Settings --> Maven --> Importing并确保选择了以下内容:

  1. 自动导入Maven项目
  2. 为聚合器项目创建IDEA模块
  3. 保留来源...
  4. 排除构建目录...
  5. 使用Maven输出...
  6. 生成的源文件夹:“自动检测”
  7. 要成为的阶段:“过程资源”
  8. 自动下载:“源”和“文档”
  9. 使用Maven3导入项目
    • 导入程序的VM选项:-Xmx512m

这使我从拥有许多未解决的import语句转到解决所有问题。我认为这里的关键是使用Maven3导入项目。希望这会有所帮助。


15
很好,但是我还必须将项目加载为Maven项目-选择File | 打开您的pom.xml并等待。
MaKri

3
这个答案和第一条评论都解决了我的问题。多谢你们!
miken.mkndev

我需要进一步增加导入器的内存,最后使用-Xmx4096m(这是一个大项目)。这与idea.vmoptions中的内存设置不同
Yasammez

谢谢,我遇到了一个问题,其中Maven 3.0.5(捆绑)将导致不导入任何Maven依赖项,但是更新为使用3.3.9允许所有依赖项正确导入。
马修·巴克特

不知道为什么IDEA没有类似于Eclipse的上下文菜单来构建基于Maven的项目。对于2017.2版,您需要执行文件>其他设置>默认设置>在搜索字段中搜索maven。与Eclipse相比,IDEA的UX真的很差
-vikramvi

115

我遇到了这个问题,想法无法使用maven下载所有依赖的jar包,我只是尝试了以下操作:

 mvn -U idea:idea

然后从maven存储库下载所有依赖的jar包


4
注意:此插件已停用。它不再维护。maven.apache.org/plugins/maven-idea-plugin
petertc

6
这也是该页面上唯一适用于我的解决方案!
nahab 2015年

我长期以来一直在面对这个问题..这节省了我的一天(/天)...非常感谢!
codeMan

对我有帮助。谢谢。
Anna Kaygorodova

3
有人可以解释为什么这行得通吗?尽管插件已于2017
。– Z3d4s

34

我也收到此错误,因为该项目将主文件夹和测试文件夹作为模块导入。单击项目->按F4->在“模块设置”中,删除主文件夹和测试文件夹,然后再次创建项目。问题将解决。


1
在将现有Maven项目导入IntelliJ 14.0.3并在导入过程中选择所有默认选项之后,这也成为我的问题。
内特·R.

经过数小时的搜索,这对我有用。加油!
SourceVisor

这也为我工作!有谁知道为什么这会破坏分辨率?
dmi_

这对我来说很有效,这是我尝试过的最简单的方法。。谢谢!
rrw '16

1
+1 ...这完全帮了我大忙。一切似乎都设置正确,读取了pom.xml,提供了库,但是需要这样做才能使错误消失。
davesbrain

34

使用IntelliJ 14捆绑的Maven 3实例时,我遇到了这个问题。

我通过以下方式切换到使用自己的本地Maven实例:

Settings -> Build, Execution, Deployment -> Build Tools -> Maven -> Maven Home Directory

然后将路径添加到本地安装的实例。在此处输入图片说明

这使依赖关系神奇地出现了。

在此处输入图片说明


1
难以置信的。经过很多头痛之后,这个为我工作。我从互联网下载了maven 3.5。非常感谢 !!
sumanth232 '17

救了我的一天!感谢Conor
Dota2 '18

哇,做完这把戏后,感觉有些东西被塞住了。谢谢康纳。
Bnrdo

哎呀,我从来没有想过不必使用捆绑版本的Maven并使用自己的Maven。花了几个小时尝试各种方法后,它完全可以正常工作。

超级!! 像微风一样工作。非常感谢您的帮助。
桑耶夫

10

我尝试了几种选择,但是这一选择终于解决了我的问题。我按照IntelliJ中的以下步骤重新导入了项目

  1. 文件->新建->现有存储库中的项目
  2. 从“选择要导入的文件或目录”中选择项目

  3. 在下一个屏幕中,选择“从外部模型导入项目”,然后选择“ Maven”。

  4. 在下一步中,单击“ 自动导入Maven项目 ” 复选框,(解决了我的问题)
  5. 通过在必要时选择配置文件来完成

对我来说,重新导入Maven项目并不能解决现有项目的问题。


5

对我来说,我需要在“设置”>“ Maven”>“导入”下选中“自动导入maven项目”框的问题


谢谢!仍然是Intellij IDEA 2016的最新解决方案。Maven导入允许无缝打开现有maven项目,这与引起多个依赖关系问题的项目打开不同!
Exterminator13


5
  1. 关闭IntelliJ
  2. 打开同一个项目
  3. 项目加载后,在右下角会看到一个弹出窗口non-managed pom.xml file found,如果单击它,则会出现一个新弹出窗口,说出来add as maven project,单击它,然后完成。

4

我收到此错误,因为我的项目设置不正确。它已将主文件夹和测试文件夹作为模块导入。当我删除2个模块(但将它们保留为源文件夹和测试文件夹)时,我的代码开始正确编译。


4

我和作者有同样的问题!

要解决我的问题,我必须添加Maven集成插件:File | 设置| 外挂程式

像这样:

Maven集成插件

之后,Intellij从pom.xml文件中下载了所有依赖项。

现在,如果要基于maven模型创建项目,只需在第一个Intellij窗口中选择“打开”,然后选择pom.xml文件:

在此处输入图片说明


这对我有用。由于某种原因,我只尝试导入项目(一个带有许多子模块的大型Maven项目)。
2015年

2

如果您在IntelliJ中导入了maven项目,并且由于无法解决maven导入而出现错误,则可能是由于您正在使用的自定义maven settings.xml。我尝试在Intellij默认Maven设置中覆盖它,但没有帮助。最后,我不得不将其保存在〜/ .m2 / settings.xml中,然后IntelliJ终于兑现了它。


这是默认设置,是吗?
rogerdpack

2

我在Users /.../。m2 / settings.xml中有空的settings.xml文件。当我添加

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">

</settings>

所有的依赖都被加载


1

设置-> Maven->存储库中,仅显示在我的设置中配置的一些存储库。

解决方法

这可能是一个错误(Idea 13.1.5 Ultimate)。它帮助我更换了镜子。没有出现在顶部的那个。


1

使用intelliJ 16.1.4,我遇到了同样的问题。您应该看一下事件日志,因为它告诉我“找到了非托管的pom.xml文件:...”,然后单击它,问题已解决。


1

就我而言,我扩展了右侧的Maven项目面板,单击+并添加了项目。然后它起作用了。


1

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

更新Setting.xml文件Intellij


0

3个简单步骤:IntelliJ 14:

  1. 文件>设置>构建,执行,部署>构建工具

  2. 选择Maven

  3. Maven主目录:C:/ Program Files / apache-maven-3.3.3(您的等效位置)


0

请记住,IntelliJ将本地Maven安装的类添加到其自己的类路径中,因此请保持最新状态。

就我而言,IntelliJ尝试调用method org.eclipse.aether.util.ConfigUtils.getFloat()。这造成了java.lang.NoSuchMethodError,因为我的Maven旧版本尚未包含此方法。由于异常,IntelliJ停止了解决依赖关系。

更新Maven后,必须在“构建,执行,部署”->“ Maven”中更改“ Maven主目录”设置。之后,您必须重新启动IntelliJ,因为IntelliJ JVM的类路径在运行时不会更改。

我花了一些时间解决这个问题,因为我没想到IntelliJ使用本地Maven安装的类。我以为它使用了自己的捆绑JAR。因此,希望这些信息对其他人有帮助。


0

<option name="workOffline" value="true" />workspace.xml不是您的朋友。建议您在删除您的文件之前先检查一下.idea(您可能不想丢失很多有用的设置)

这是一个行家workspace.xml设置


0

在我看来,解决这个问题的方法很多,而且看起来都像魔术。对我来说,缓存无效,重新导入或其他任何已提及的方法均无效。唯一有帮助的是(不重新导入)转到Maven设置,取消选中自动导入,然后重新检查一次。

在此处输入图片说明


0

捆绑的Maven版本存在问题。正如之前有人建议我切换到我自己的Maven安装和依赖关系神奇地工作(IntelliJ 2018.3)


0

<dependency>...</dependency>元素添加到中时,我刚刚遇到了这个问题<profile>。我刚刚发现,如果我将未解决的依赖项元素添加(插入)到<dependencies>元素中,则这些依赖项是从maven存储库下载的;然后,我可以从依赖性元素中删除依赖性元素。


0

使用默认的Maven(IntelliJ随附)也可能会出现此问题。因此,配置已安装的Maven。

可以通过以下方式完成:文件->设置->构建,执行,部署-> Maven

根据您的maven安装更新以下设置:

  1. Maven主目录=
  2. 用户设置文件=
  3. 本地存储库=

0

好吧,我面对这个问题已经好几天了。在尝试导入POI库和简单JSON库时,我尝试了所有建议的答案和解决方案,但无济于事。最后,针对我的案例的解决方案非常简单

在将依赖项放入POM文件后,我只需要将以下内容添加到我的module-info.java文件中:

 requires poi.ooxml;
 requires poi;
 requires json.simple;

所以我想因为我的项目在模块的一个包中,所以我必须这样做以使系统知道将使用这些导入的库。如此简单,将库名放在require之后的module-info.java文件中

希望对你有帮助


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.