强制Intellij IDEA重新读取所有Maven依赖项


297

如何强制intellij idea重新读取/更新pom文件中指定的所有依赖关系?

Answers:


354

Ctrl+ Shift+ A查找操作,然后输入“重新导入”,您将找到“重新导入所有Maven项目”。

在Mac上,请改用+ + A


1
可以说我在一个项目中有5个模块,所有这些模块都是基于Maven的,而我这样做。此命令运行时是否适用于所有模块,仅适用于所选模块,还是适用于项目中的第一个模块?
slartibartfast

这改变了吗?我看不到Maven
Winnemucca

1
@Winnemucca我刚刚在2017.2。等待它现在完成。
mrClean

1
我必须启用Maven插件才能执行此操作。
codefreak

1
@Winnemucca,您可以右键单击pom,在下拉菜单中转到Maven,然后选择“重新导入”。
jones-chris

125

打开“ Maven项目”选项卡/窗口,然后单击左上角的“重新导入所有Maven项目”,开始从其存储库中重新加载所有依赖项。状态栏通知该过程。

是什么让您认为这无法正常工作?也许无法从存储库中加载任何依赖项?


1
我们习惯于使用非快照版本进行持续的开发,而跨项目依赖有时会失败。
kubek2k

1
恐怕这个问题取决于行家。Maven仅检查SNAPSHOT上的更新。根据定义,非SNAPSHOT版本永远不会更改,因此maven不必在本地存储库中检查比此版本新的版本。一个(非常不礼貌的)解决方案是在调用maven之前从本地存储库中删除该库。然后,它必须重新加载库。
magomi 2012年

9
似乎重新导入全部迫使-U标志我想要的是什么:)
kubek2k 2012年

我右键单击父项目,然后执行Maven-> Reimport,希望它可以更新所有子项的依赖关系,但事实并非如此。感谢您的解决方案!
botchniaque,2014年

6
要找到“ Maven项目”选项卡/窗口,请转到“视图”>“工具窗口”>“ Maven项目
Kevin Wheeler”,2015年

64

还有一个有用的设置,可以告诉IntelliJ检查依赖项的新版本,即使版本号没有更改。我们有一个本地maven存储库和一个快照项目,该项目已更新了几次,但版本号保持不变。问题在于,由于版本号固定,IntelliJ / Maven没有更新此项目。

要在版本号未更改的情况下启用对已更改依赖性的检查,请转到“ Maven项目”选项卡,选择“ Maven设置”,然后激活“始终更新快照”。


2
哈!JAVA项目中的自动更新...我不得不说这并不总是一个赢家...甚至可能不
喜欢

@beauXjames ..这对我不起作用,但是我正面临着同样的问题。该如何解决。
萨特什

1
我经常进入本地仓库({user} \。m2 \ ...)目录,并删除我知道与我的项目相关联的目录,然后让安装过程结束并从头开始再次获取它们,因此没有版本冲突
beauXjames

来自help:“如果希望IntelliJ IDEA同步更新快照,请选中此复选框。” 换句话说,它不是全自动的-您必须Synchronize(在右键菜单或中Ctrl-Alt-Y),但是启用此选项会使它获取更新的SNAPSHOT版本。警告:可能还涉及其他一些细微之处,例如Import Changes,到目前为止,对于我来说,这似乎还不能完美再现。也许这全在我的想象中-似乎一直奏效的是reimport其他答案所建议的全部内容。
nobar

36

对于IntelliJ IDEA 14.0

项目> [您的项目名称]>右键单击> Maven>重新导入


17

如果重新导入不起作用(即在pom更新后没有删除旧版本的依赖项),则还有另一种机会:

  • 打开项目设置(CTRL + SHIFT + ALT + S)
  • 在模块上,删除要重新导入的所有库(例如重复项)
  • IDEA将警告某些仍在使用中,请确认
  • 应用并选择确定
  • 然后重新导入所有Maven项目。


9

运行此命令 mvn -U clean install


3
虽然这是一个解决方案,但需要从CLI进行。问题是关于从IDEA内部执行此操作。
talonx

在IDE中,您可以执行一个Maven目标,使用上面的命令没有你打开你的CLI或终端
Babajide阿帕塔

2
那种打败了将Maven集成到IDEA中的目的。
talonx

1
我们正在谈论-U选项,IDEA中没有该选项。“重新导入”选项听起来像是,但事实并非如此。
talonx

1
我看到您指的是输入和执行Maven目标,在这种情况下,这是有可能的。但是,我指的是-U不在右侧的内置菜单中(“ Maven项目”)。
talonx

3

我遇到了一个问题,即IntelliJ无法编译类,声称项目之间的依赖项缺失。按照此问题的答案中的建议重新导入项目并不能解决问题。对我来说,解决方案是:

  1. 删除所有项目(项目选项卡/右键单击根文件夹/ maven /删除项目);
  2. 关闭编辑器;
  3. 在命令行上使用maven编译所有项目;
  4. 在同一项目上打开编辑器;
  5. 再次将项目添加到Maven(“ Maven”选项卡/添加Maven项目(绿色+)/选择root pom);

警告:在某些项目上,您可能必须增加用于maven导入的最大内存(maven选项卡上的maven设置/导入器的VMWare选项)。



0

如果您将版本范围用于任何依赖项,请确保IntelliJ使用Maven 3导入项目。您可以在中找到此设置Settings > Maven > Importing > Use Maven3 to import project。否则,您可能会发现SNAPSHOT版本未正确导入。

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.