我有一个关于IntelliJ IDEA 11的小问题 . 我刚刚从subversion导入了一个项目 - 它是一个maven项目 . 但我在maven库依赖项中遇到问题,因此我无法自动包含所有maven依赖项 - 只有在我打开该类时,IDEA才会显示依赖项错误/这就是我在这里得到的:
所以我想要自动添加所有依赖项 - 这是可能的还是我必须通过所有类文件来识别和添加maven依赖项?!
更新:在做了一些修改后,我发现了如何以某种方式解决我的问题 . 多数民众赞成我所做的:
但我认为逻辑上它不会包括并检查前面的新依赖项?!...在intelliJ中是否有任何设置区域 - 自动导出依赖于类路径?
27 回答
我遇到了同样的问题并尝试了一些没有解决问题的建议,我使用的是Intellij 13.1.3版本
最后花了几个多小时试图解决它,我决定尝试升级版本并在14.1.4版本中打开项目,最终解决了这个问题 . 我认为这可能是以前版本中的一个错误 .
我希望这有帮助!
如果其他所有方法都失败了,请检查本地.m2存储库中的jar文件是否确实有效且未损坏 . 就我而言,该文件尚未完全下载 .
在maven中,当我删除dependencyManagement xml部分并且直接在项目部分下有依赖项时,依赖项被包含在内
打开
IntelliJ Idea
,转到 File > Other Settings > Default Settings... > Maven (Preferences) > Importing 或|Preferences > Maven > Importing
单击控制台中的 Enable Auto-import .
劫持一下,添加最终为我工作的东西:
进入IDE右边缘的
Maven Projects
侧边栏,并验证您的模块下的依赖项是否正确列出 . 假设它们是,只需要让IDEA重新进口(顶部的第一个按钮,看起来像两个蓝色箭头形成一个逆时针圆圈) .一旦我这样做了,让IDEA为我重新加载项目,我所有的依赖都被神奇地理解了 .
供参考:这是
IDEA 13.1.2
Maven - Reimport不适合我 . 我在STS(Eclipse)中有Spring项目,我的解决方案是将项目导入IDEA,如下所示:
1)文件 - 新建 - 来自现有源的项目... - 选择目录 - 选择Eclipse .
2)在设置中将Maven autoimport设置为true .
3)然后右键单击pom.xml并选择Add as Maven Project .
在此之后,它已导入所有内容 .
我和我的macbook有类似的问题,只是在
pom.xml
做了一个小改动,它开始下载所有依赖项:对于我的Windows机器,早期的依赖关系如下所示:
我刚刚删除了
<dependencies>
和</dependencies>
标签,它开始下载所有依赖项:我不确定它是否会对你有用..但对我来说工作得很好 .
谢谢
在我尝试_223353_然后导航到POM文件之前,没有什么对我有用 .
从项目目录中删除.idea文件夹,然后将项目重新导入为Maven项目对我有用 .
我通过使用正确的镜像配置更新我的settings.xml文件解决了这个问题,似乎每次导入maven模块时intellij都会尝试从存储库下载元数据 .
如果多次导入相同的路径,则导入Maven依赖项可能不起作用 . 这可能在导入现有maven项目后自动发生 . 我无法弄清楚为什么会发生这种情况,所以我倾向于认为这是一个错误 .
例如,如果我的项目是
三个路径可以作为顶级节点导入:
如果是这种情况,依赖关系似乎是正确的,但在删除多余路径(在本例中为
src/main
和src/test
)之前不会使用它们 . 完成此操作后,请刷新并单击“生成”>“重建项目” . IDEA将获取依赖关系 .此问题的一个症状是,当您手动检查库时,IDEA会警告您有重复的路径(问题中的第二个屏幕截图) .
有多种方法可以在需要时重新读取依赖项 . 如果您转到“Maven项目”选项卡,则选项卡左上角会显示“重新导入所有Maven项目”图标 . 如果您怀疑IDEA感到困惑,可以单击文件>无效缓存 .
是什么帮助了我:
Navigage:设置|构建,执行,部署| Maven的
指定“Maven主目录” - 安装maven的位置
进入项目结构,在项目Settings,Modules下,选择依赖项表 . 对于每个依赖项,将范围从“测试”更改为“编译” .
我遇到了IntelliJ 2016.3.X无法解决某些子依赖关系的问题 . 这可以通过将设置>构建,执行,部署>构建工具> Maven中的
Maven home directory
从Bundled (Maven 3)
更改为/usr/share/maven
来解决 .之后,所有子依赖关系都得到了解决,就像之前的IntelliJ版本一样 .
如果在右下角显示“2个进程正在运行...”或类似情况,您可能只需要等待它完成,因为下载所有jar可能需要一些时间 .
我遇到了类似的问题,在我的情况下,我使用的是自定义的
settings.xml
,它不是从IntelliJ中挑选出来的 .Solution:
File > Settings > Build, Execution, Deployment > Maven: User settings file
(在这里选择我的custom settings.xml) .问题似乎是尽管在pom.xml中列出了依赖项,但IntelliJ IDEA在运行项目时不会重建这些依赖项 .
对我有用的是:
转到“运行” - >“编辑配置...”,找到您的应用程序,确保展开“发布之前:”部分,单击绿色加号,然后选择“构建项目” .
只要您的POM符合并且所有依赖项都可用,IntelliJ就会自动下载所有依赖项并将其添加到项目的类路径中 .
将Maven项目导入IntelliJ时,通常会出现一个信息框,询问您是否要为Maven项目配置自动导入 . 这意味着如果您对POM进行任何更改,那么这些更改将自动加载 .
您可以启用此类功能转到文件>设置> Maven>导入,有一个复选框,显示“自动导入Maven项目” .
如果这没有帮助,那么我建议进行全面清理并重新开始:
关闭项目窗口(和IntelliJ)并删除所有
*.iml
文件和所有.idea
文件夹(每个模块应该有一个)从命令行运行
mvn clean install
将项目重新导入IntelliJ,并在要求您启用自动导入时注意
IntelliJ 2016 Update :
导入Maven项目自动设置已移至IntelliJ首选项中的 Build, Execution, Deployment > Build Tools > Maven > Importing .
我能够通过从 Project Settings -> Modules 列表中删除不必要的模块来解决它 .
事实证明,当我通过从项目文件夹(而不是通过打开pom.xml)导入创建IntelliJ项目时,IntelliJ IDEA会自动创建这些附加模块 . 然后,在将项目声明为Maven项目之后,创建了适当的模块,并且现有模块与它们发生冲突 . 在项目创建期间也可以排除这些模块 .
对于IntelliJ 2016-2.4(我相信其他新版本):
查看>工具Windows> Maven项目
在新显示的工具栏中,选择Maven设置(工具集的图标) .
此屏幕打开后,展开Maven菜单并单击“导入”
在这里,单击“自动导入Maven项目” . 还要确保'JDK for Importer'选项与您要使用的JDK版本匹配 .
单击确定 . 现在转到pom.xml中的红色依赖项,选择红色灯泡,然后单击“更新Maven索引” .
创建新项目时,只需选择以下选项:
...
Import project from external model
在现有外部模型上创建IDEA项目结构(Eclipse,Maven ...)
...
从那里你会发现它很直接 .
在您的情况下,您可以关闭您的项目,只需创建一个新项目 . 选择项目的目录,它将覆盖它,使其成为Maven项目 .
如果某些maven模块没有编译检查他们的pom.xml是否在“被忽略的文件”列表中 . 在IntelliJ goto中
并检查是否忽略相关的pom.xml .
首先检查路径在 Settings -> Build,Execution,Development -> Build Tools -> Maven 中为 User Settings file: 指定 . 该字段应该包含您的maven的 settings.xml 的路径 . settings.xml也应具有远程存储库的正确路径 .
尝试从IntelliJ IDEA中的Maven Projects面板重新导入项目 . 它应该自动下载并配置
pom.xml
中定义的所有依赖项 .如果由于某种原因从IDEA无法下载,请从命令行尝试
mvn install
并查看是否可以获取依赖项 .当然,必须直接在
pom.xml
文件中定义所有必需的依赖项和任何自定义存储库 .重新进口该项目 . 如果您安装maven插件,您可以使用它 .
右键单击项目 - > Maven - > Reimport
以为我会把我的0.02美元扔到这里:对我来说,解决这个问题的方法就是去
文件[菜单] - >设置 - > maven - >导入和取消选中"use maven3 to import project"
参考:http://youtrack.jetbrains.com/issue/IDEA-98425(也可能有其他一些想法)
更新:再次使用IntelliJ 15再次进入此状态,此时无法再使用"use maven3 to import"选项 . 原因是有时IntelliJ "doesn't parse maven dependencies right"并且如果它无法正确解析其中一个,它显然会放弃所有这些 . 您可以通过打开maven项目工具窗口(查看菜单 - >工具窗口 - > Maven项目)来判断是否是这种情况 . 然后展开您的一个maven项目及其依赖项 . 如果依赖项全部用红色加下划线,"Houston, we have a problem" .
实际上你可以通过鼠标悬停在项目名称上来看到真正的失败本身 .
在我的实例中,它说"Problems: No versions available for XXX"或"Failed to read descriptor for artifact org.xy.z" ref:https://youtrack.jetbrains.com/issue/IDEA-128846和https://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!
导入项目时,请选择
pom.xml
而不是项目目录 . 它应该工作 .