在IntelliJ IDEA中导入Maven依赖关系
我有一个关于IntelliJ IDEA 11的小问题。我刚刚从subversion导入了一个项目 – 它是一个maven项目。 但是我有一个maven库依赖的问题,所以我不能自动包含所有的maven依赖 – IDEA只显示依赖错误,当我打开该类/这就是我在这里得到:
所以我想要所有的依赖项自动添加 – 是可能的,或者我必须通过所有的类文件来识别和添加Maven的依赖?
更新:做了一些修改后,我发现如何解决我的问题,在某种程度上。 那就是我所做的:
但我想逻辑上它不会包括和检查新的依赖关系?!…有没有这个在IntelliJ中的任何设置区 – 自动导出依赖到类path?
只要您的POM符合要求并且所有依赖关系都可用,IntelliJ就应该自动下载并将所有依赖关系添加到项目的类path中。
将Maven项目导入IntelliJ时,通常会出现一个信息框,询问您是否要为Maven项目configuration自动导入 。 这意味着如果您对POM进行了任何更改,这些更改将自动加载。
你可以启用这个function到文件>设置> Maven>导入,有一个checkbox,说“自动导入Maven项目”。
如果这样做没有帮助,那么我会build议彻底清理并重新开始:
- closures您的项目窗口(和IntelliJ),并删除所有
*.iml
文件和所有.idea
文件夹(应该有一个模块) - 从命令行运行
mvn clean install
- 将项目重新导入到IntelliJ中,并在要求您启用自动导入时注意
IntelliJ 2016更新 :
导入Maven项目自动设置已经被移到了IntelliJ首选项中的构build,执行,部署>构build工具> Maven>导入 。
以为我会把我的$ 0.02放在这里:对我来说,解决这个问题的办法就是去
文件[menu] – >设置 – > maven – >导入并取消选中 “使用maven3导入项目”
ref:http: //youtrack.jetbrains.com/issue/IDEA-98425 (也可能有其他一些想法)
更新:再次进入这个,IntelliJ 15这一次,没有“使用maven3导入”选项了。 原因是有时IntelliJ“不parsing对象的依赖关系”,如果它不能parsing它们中的一个,显然它放弃了所有这些。 您可以通过打开Maven项目工具窗口(查看菜单 – >工具窗口 – > Maven项目)来判断是否属于这种情况。 然后展开你的一个Maven项目及其依赖项。 如果依赖关系全部用红色标出,“休斯顿,我们有问题”。
你可以通过鼠标hover在项目名称上看到真正的失败。
在我的例子中,它说:“问题:没有可用于XXX的版本”或“无法读取工件org.xy.z的描述符”ref: https: //youtrack.jetbrains.com/issue/IDEA-128846和https:// youtrack.jetbrains.com/issue/IDEA-152555
看来在这种情况下,我正在处理一个jar没有相关的pom文件(在我们的maven nexus回购,也是我的本地存储库)。 如果这也是你的问题,“urrent工作:如果你实际上并不需要在你自己的代码中使用这个jar文件中的类(例如只是一个传递的maven依赖),那么你实际上可以脱离pom (暂时),maven项目重新加载,然后取消它的注释。不知何故之后,IntelliJ“记住”其旧的工作依赖项。如果从传递链依赖关系中运行,则临时添加Maven传递排除function也可能会执行此操作。 “
另一个可能的帮助是使用maven的“更新版本”,而不是捆绑的3.0.5。 为了设置它作为默认的,closures所有的intellij窗口,然后打开首选项 – >构build,执行和部署 – >构build工具 – > maven,并更改Maven的主目录,它应该说“对于默认项目“,当你调整这个项目时,尽pipe你也可以调整它以适应某个特定的项目,只要你在调整它之后重新导入。
其他可能的帮助:删除你的intellijcaching文件夹(windows:HOMEPATH /。{IntellijIdea,IdeaC} XXX linux〜/ .IdeaIC15)和/或卸载并重新安装IntelliJ本身。 GL!
尝试从IntelliJ IDEA的Maven Projects面板重新导入项目。 它应该自动下载并configuration你的pom.xml
定义的所有依赖项。
如果下载由于某种原因而无法从IDEA工作,请尝试从命令行mvn install
,并查看是否可以获取依赖关系。
当然,所有必需的依赖关系和任何定制的存储库都必须直接在pom.xml
文件中定义。
导入项目时,请selectpom.xml
而不是项目目录。 它应该工作。
对于IntelliJ 2016-2.4(我相信其他新版本):
查看>工具窗口> Maven项目
在新显示的工具栏中,selectMaven settings(工具集的图标)。
当这个屏幕打开时,展开Maven菜单并且点击'导入'
在这里,点击“自动导入Maven项目”。 还要确保“JDK for Importer”选项与您要使用的JDK版本相匹配。
点击OK。 现在转到pom.xml中的红色依赖关系,select红色灯泡,然后单击“更新Maven索引”。
当你创build一个新的项目时,你只需要select这个选项:
…
从外部模型导入项目
在现有的外部模型(Eclipse,Maven …)上创buildIDEA项目结构
…
你会发现从那里很简单。
而在你的情况下,你可以closures你的项目,只需创build一个新的。 select你的项目的目录,这将覆盖它,使之成为一个Maven项目。
如果多次导入相同的path,导入Maven依赖关系可能不起作用。 导入现有的Maven项目后,这可能会自动发生。 我不知道为什么发生这种情况,所以我倾向于认为这是一个错误。
例如,如果我的项目是
hibernate src/main src/test
这三个path可以作为顶级节点导入:
hibernate src/main src/test
如果情况如此,依赖关系似乎是正确的,但是直到删除多余的path(在这种情况下, src/main
和src/test
)之前它们将不会被使用。 一旦你这样做,刷新并点击生成>重build项目。 IDEA将select依赖关系。
这个问题的一个症状是当您手动检查一个库(问题中的第二个屏幕截图)时,IDEA会警告您重复的path。
有几种方法可以在需要时重新读取依赖关系。 如果您转到“Maven项目”选项卡,则在该选项卡的左上方有一个“重新导入所有Maven项目”图标。 如果你怀疑IDEA变得困惑,你可以点击File> Invalidate Caches。
什么帮助我:
Navigage:设置| 构build,执行,部署| Maven的
指定“Maven主目录” – 你安装Maven的地方
如果某些maven模块没有编译,检查他们的pom.xml是否在“ignored files”列表中。 在IntelliJ转到
首选项 – >项目设置 – > maven – >忽略文件
并检查相关的pom.xml是否被忽略。
打开IntelliJ Idea
,转到文件>其他设置>默认设置…> Maven(首选项)>导入或| Preferences > Maven > Importing
点击控制台中的启用自动导入 。
重新导入项目。 如果你安装maven插件,你可以使用这个。
右键点击项目 – > Maven – > Reimport
进入你的项目结构,在项目设置,模块,select依赖关系表。 对于每个依赖项,将范围从“testing”更改为“编译”。
如果在右下angular显示“2进程正在运行…”或类似的信息,则可能需要等待完成,因为下载所有的jar子可能需要一些时间。
我通过使用正确的镜像configuration更新我的settings.xml文件解决了这个问题,似乎每次导入maven模块时,intellij都会尝试从存储库下载元数据。
劫持一下,以增加最后为我工作的东西:
进入IDE右边的Maven Projects
边栏,并validation你的依赖关系在你的模块下正确列出。 假设他们是这样的,只需要IDEA重新导入(顶部的第一个button,看起来像两个蓝色的箭头形成一个逆时针圆圈)。
一旦我做到了,让IDEA为我重新加载项目,我所有的依赖都被神奇地理解了。
供参考:这是与IDEA 13.1.2
我面临同样的问题,并尝试一切build议,这并没有解决问题,我使用的是Intellij版本13.1.3
最后,花了几个小时试图修复它之后,我决定尝试一个升级版本,并在14.1.4版本中打开了这个项目,最终解决了这个问题。 我会认为这是在以前的版本中可能的错误。
我希望这有帮助!
我遇到了一些问题,一些subdependencies不能解决在IntelliJ 2016.3.X. 这可以通过将设置>构build,执行,部署>构build工具> Maven从Bundled (Maven 3)
更改为/usr/share/maven
来修复Maven home directory
。
之后,所有的subdependencies得到解决像以前的IntelliJ版本。
如果一切都失败,请检查本地.m2存储库中的jar文件是否确实有效且未损坏。 在我的情况下,该文件尚未完全下载。
在maven中,当我删除了dependencyManagement xml部分,并且直接在项目部分
Maven – Reimport没有为我工作。 我在STS(Eclipse)中有Spring项目,我的解决scheme是将项目导入IDEA,如下所示:
1)文件 – 新build – 来自现有源的项目… – select目录 – selectEclipse。
2)在设置中将Maven自动导入设置为true。
3)然后右键单击pom.xml并select添加为Maven项目。
之后它已经导入了一切。
没有任何工作,直到我尝试"File --> Open"
,然后导航到POM文件本身。
问题似乎是,尽pipe在pom.xml中列出了你的依赖关系,当你运行你的项目时,IntelliJ IDEA不会重build这些依赖关系。
这对我有效:
进入“运行” – >“编辑configuration…”,find您的应用程序,确保“启动前:”部分展开,点击绿色加号,然后select“生成项目”。