我有一个关于IntelliJ IDEA 11的小问题。我刚刚从subversion导入了一个项目 - 它是一个maven项目。但我在maven库依赖项中遇到问题,因此我无法自动包含所有maven依赖项 - IDEA仅在我打开该类时显示依赖项错误/这就是我所得到的:
所以我希望自动添加所有依赖项 - 这是可能的还是我必须通过所有类文件来识别和添加maven依赖项?!
更新:做了一些修改后,我发现了如何以某种方式解决我的问题。多数民众赞成我所做的:
但我认为逻辑上它不会包含并检查前面的新依赖项?!...在intelliJ中是否有任何设置区域 - 自动导出依赖于类路径?!
答案 0 :(得分:239)
IntelliJ应该自动下载并将所有依赖项添加到项目的类路径中,只要您的POM符合并且所有依赖项都可用。
将Maven项目导入IntelliJ时,通常会出现一个信息框,询问您是否要为Maven项目配置自动导入。这意味着如果您对POM进行任何更改,那么这些更改将自动加载。
您可以启用此功能转到文件>设置> Maven>导入时,有一个复选框,上面写着“自动导入Maven项目”。
如果这没有帮助,那么我建议进行全面清理并重新开始:
*.iml
个文件和所有.idea
个文件夹(每个模块应该有一个)mvn clean install
IntelliJ 2016更新:
自动导入Maven项目设置已移至构建,执行,部署>构建工具> Maven>在IntelliJ首选项中导入。
答案 1 :(得分:61)
我以为我把0.02美元扔到这里:对我来说,解决这个问题的方法是去
文件[菜单] - >设置 - > maven - >导入和取消选中"使用maven3导入项目"
参考:http://youtrack.jetbrains.com/issue/IDEA-98425(可能还有其他一些想法)
更新:再次使用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 repo中,以及我的本地存储库)。如果这也是你的问题," urrent可以解决:如果你实际上不需要在自己的代码中使用该jar中的类(例如只有传递maven依赖),你实际上可以将它注释掉从pom(暂时),maven项目重新加载,然后取消注释。不知怎的,在那之后,IntelliJ"记得"它的旧工作依赖。如果您从传递的依赖链中遇到maven传递排除,那么暂时添加它也可能会这样做。"
另一件可能有用的事情是使用"更新的版本" maven比捆绑3.0.5。 要将其设置为默认使用此选项,请关闭所有intellij窗口,然后打开首选项 - >构建,执行和部署 - >构建工具 - > maven,并更改maven主目录,它应该说"对于默认项目"在你调整它的顶部,虽然你也可以为特定项目调整它,只要你重新导入"调整后。
其他可能有用的方法:删除你的intellij缓存文件夹(windows:HOMEPATH /。{IntellijIdea,IdeaC} XXX linux~ / .IdeaIC15)和/或卸载并重新安装IntelliJ本身。 GL!
答案 2 :(得分:30)
导入项目时,请选择pom.xml
而不是项目目录。它应该工作。
答案 3 :(得分:19)
尝试从IntelliJ IDEA中的Maven Projects面板重新导入项目。它应该自动下载并配置pom.xml
中定义的所有依赖项。
如果出于某种原因下载IDEA不起作用,请从命令行尝试mvn install
,看看是否可以获取依赖项。
当然,必须直接在pom.xml
文件中定义所有必需的依赖项和任何自定义存储库。
答案 4 :(得分:12)
对于IntelliJ 2016-2.4(我相信其他新版本):
查看>工具窗口> Maven项目
在新显示的工具栏中,选择Maven设置(工具集的图标)。
此屏幕打开后,展开Maven菜单,然后点击“导入”
在此处,单击"自动导入Maven项目。"同时确保进口商的JDK'选项与您要使用的JDK版本匹配。
单击“确定”。现在转到pom.xml中的红色依赖项,选择红色灯泡,然后点击“更新Maven索引”。
答案 5 :(得分:8)
是什么帮助了我:
Navigage: 设置|构建,执行,部署|行家
指定“Maven主目录” - 您安装maven的地方
答案 6 :(得分:6)
如果某些maven模块没有编译检查他们的pom.xml是否在“被忽略的文件”列表中。在IntelliJ转到
偏好设置 - >项目设置 - > maven - >忽略文件
并检查是否忽略了相关的pom.xml。
答案 7 :(得分:5)
打开IntelliJ Idea
,转到
文件>其他设置>默认设置...> Maven(偏好)>导入或|
Preferences > Maven > Importing
点击控制台中的启用自动导入。
答案 8 :(得分:4)
创建新项目时,您只需选择选项:
...
从外部模型导入项目
在现有外部模型(Eclipse,Maven ......)上创建IDEA项目结构
...
你会从那里发现它非常直接 在您的情况下,您可以关闭您的项目,只需创建一个新项目。选择项目的目录,它将覆盖它,使其成为Maven项目。
答案 9 :(得分:4)
如果多次导入相同的路径,则导入Maven依赖项可能不起作用。这可能在导入现有maven项目后自动发生。我无法弄清楚为什么会发生这种情况,所以我倾向于认为这是一个错误。
例如,如果我的项目是
hibernate
src/main
src/test
这三条路径可以作为顶级节点导入:
hibernate
src/main
src/test
如果是这种情况,依赖关系似乎是正确的,但在删除多余路径(在本例中为src/main
和src/test
)之前,它们不会被使用。完成此操作后,请刷新并单击Build>重建项目。 IDEA将获取依赖关系。
此问题的一个症状是,当您手动检查库时,IDEA会警告您存在重复路径(问题中的第二个屏幕截图)。
有多种方法可以在需要时重新读取依赖项。如果您转到“Maven项目”选项卡,则选项卡左上角会显示“重新导入所有Maven项目”图标。如果您怀疑IDEA感到困惑,可以点击文件>无效缓存。
答案 10 :(得分:3)
重新导入该项目。如果你安装了maven插件,你可以使用它。
右键点击该项目 - > Maven - >再次导入
答案 11 :(得分:3)
我遇到了类似的问题,就我而言,我使用的是自定义settings.xml
,该自定义不是从IntelliJ中挑选的。
解决方案:
File > Settings > Build, Execution, Deployment > Maven: User settings file
(在此处选择我的自定义settings.xml)。
答案 12 :(得分:3)
进入项目结构,在项目Settings,Modules下,选择依赖项表。对于每个依赖项,将范围从“测试”更改为“编译”。
答案 13 :(得分:2)
我遇到了IntelliJ 2016.3.X无法解决某些子依赖关系的问题。这可以通过更改设置>中的Maven home directory
来解决。构建,执行,部署>构建工具> Maven从Bundled (Maven 3)
到/usr/share/maven
。
之后,所有子依赖关系都得到了解决,就像之前的IntelliJ版本一样。
答案 14 :(得分:2)
所以我在我组织的许多代码库中也遇到了这个问题。除了上面建议的答案之外,我们还可以调整 jvm 的分配池内存。这是因为,大型代码库中带来的依赖量可能会让 jvm for IDE 完全构建项目。因此尝试增加 XMX 值并且它起作用了! Added -Xmx3072 to resolve the issue of "not building" my Java project in IntelliJ
答案 15 :(得分:2)
我的Macbook遇到了类似的问题,只是在pom.xml
中做了一个小改动,它开始下载所有依赖项:
我的Windows机器的早期依赖关系如下所示:
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
我刚刚删除了<dependencies>
和</dependencies>
标签,它开始下载所有依赖项:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
我不确定它是否对您有用。.但是对我来说很好。
谢谢
答案 16 :(得分:2)
在设置 - &gt;中为用户设置文件指定的首个检查路径构建,执行,开发 - &gt;构建工具 - &gt; Maven 。 该字段应包含您的maven的 settings.xml 的路径。 settings.xml也应该有正确的远程存储库路径。
答案 17 :(得分:1)
我遇到了同样的问题并尝试了一些没有解决问题的建议,我使用的是Intellij版本13.1.3
最后花了几个多小时试图修复它后,我决定尝试升级版本并在14.1.4版本中打开项目,最终解决了这个问题。我认为这可能是之前版本中的一个错误。
我希望这有帮助!
答案 18 :(得分:1)
从项目目录中删除.idea文件夹,然后将项目重新导入为Maven项目对我来说很有效。
答案 19 :(得分:1)
答案 20 :(得分:1)
我遇到了同样的问题,并尝试了此处提到的所有答案,但均无济于事。
简单的解决方案是转到您的项目文件夹,并删除所有.idea和.iml文件,然后重新启动IntelliJ ide。有用。无需对设置进行任何操作。
答案 21 :(得分:1)
我能够通过从项目设置->模块列表中删除不必要的模块来解决此问题。
事实证明,当我通过从项目文件夹导入(而不是通过打开pom.xml)创建IntelliJ项目时,这些附加模块是由IntelliJ IDEA自动创建的。然后,在将该项目声明为Maven项目之后,创建了正确的模块,并且现有模块与它们冲突。在项目创建过程中也可以排除那些模块。
答案 22 :(得分:1)
Maven - Reimport不适合我。
我在STS(Eclipse)中有Spring项目,我的解决方案是将项目导入IDEA,如下所示:
1)文件 - 新建 - 来自现有源的项目... - 选择目录 - 选择Eclipse
2)在设置中将Maven autoimport设置为true
3)然后右键单击pom.xml并选择Add as Maven Project。
在此之后它已经导入了所有内容。
答案 23 :(得分:1)
劫持一下,添加最终为我工作的东西:
进入IDE右边缘的Maven Projects
侧边栏,验证您的依赖项是否在您的模块下正确列出。假设它们是,请让IDEA重新进口(顶部的第一个按钮,看起来像两个蓝色箭头形成一个逆时针圆圈)。
一旦我这样做了,让IDEA为我重新加载项目,我所有的依赖都被神奇地理解了。
供参考:这是IDEA 13.1.2
答案 24 :(得分:1)
我通过使用正确的镜像配置更新我的settings.xml文件解决了这个问题,似乎每次导入maven模块时intellij都会尝试从存储库下载元数据。
答案 25 :(得分:1)
如果在右下角显示“2个进程正在运行......”或类似情况,您可能只需等待即可完成,因为下载所有广告可能需要一段时间。
答案 26 :(得分:0)
无效缓存对我有用:
文件 > 使缓存无效
检查:
清除文件系统缓存和本地历史记录
清除下载的共享索引
然后失效并重启
答案 27 :(得分:0)
IntelliJ 2020.3.3
这个是为我做的。
构建、执行、部署 > 构建工具。
更改“在构建脚本中更改后重新加载项目”:
这样,项目重建需要一段时间,但现在我可以在 IntelliJ 中看到 Maven 依赖项:
答案 28 :(得分:0)
此问题的一种可能模式是您没有与Nexus的连接,并且基本上想以离线模式构建项目。但是,当您导入项目时,Idea会尝试自动下载Maven依赖项。您在“设置”中设置了“脱机工作”复选框,但为时已晚:在初次下载尝试期间某些东西已经损坏。这里列出的两个选项都不适合我解决此问题。相反,我做了以下事情:
以这种方式工作。
答案 29 :(得分:0)
答案 30 :(得分:0)
重新导入专家-> close-intellij -> 删除整个 -
mm0..7
文件夹-> 重新打开项目-> 构建-> build-project / build-module- “您的父模块”
答案 31 :(得分:0)
在我的情况下,MAVEN使用的JAVA路径未设置为机器上配置的JAVA_HOME。因此,它甚至没有尝试下载依赖项。 我遵循的步骤解决了这个问题,
检查了JAVA路径,设置>>构建>>构建工具>>导入>> JDK for importer 。将其指向JAVA_HOME。
mvn clean install -U
使用上述命令强制下载依赖项。
重新导入Maven项目
答案 32 :(得分:0)
您可能正在公司的内部网络下工作。
如果是这样,要下载或添加外部Maven依赖项,可能需要更新settings.xml
文件夹下的user/<username>/.m2
文件。
与管理员联系以提供正确的settings.xml
文件,然后将其粘贴到您的.m2
文件夹中。
答案 33 :(得分:0)
我能够通过在pom.xml文件中的build标记之后添加以下代码行来修复我的问题,我从正在运行的项目中进行了比较,发现差异,现在我一切都很好。
<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>
答案 34 :(得分:0)
问题似乎是尽管在pom.xml中列出了依赖项,但IntelliJ IDEA在您运行项目时不会重建这些依赖项。
对我有用的是:
转到“运行” - &gt; “编辑配置...”,找到您的应用程序,确保展开“发布之前:”部分,单击绿色加号,然后选择“构建项目”。
答案 35 :(得分:0)
如果其他所有方法都失败了,请检查本地.m2存储库中的jar文件是否确实有效且未损坏。就我而言,该文件尚未完全下载。
答案 36 :(得分:0)
在maven中,当我删除dependencyManagement xml部分并且直接在项目部分下面有依赖项时,依赖项被包含在内