强制 Intellij IDEA 重新读取所有 maven 依赖项
Posted
技术标签:
【中文标题】强制 Intellij IDEA 重新读取所有 maven 依赖项【英文标题】:Force Intellij IDEA to reread all maven dependencies 【发布时间】:2012-04-16 09:00:40 【问题描述】:如何强制 intellij idea 重新读取/更新 pom 文件中指定的所有依赖项?
【问题讨论】:
【参考方案1】:按Ctrl+Shift+A查找动作,输入“reload”,你会看到“Reload All Maven Projects” .
在 Mac 上,请改用 ⌘+⇧+A。
【讨论】:
假设我有 5 个模块,所有模块都基于 maven,在一个项目中,我这样做了。此命令适用于所有模块,仅适用于选定的模块,还是运行时项目中的第一个模块? 这有改变吗?我在 Maven 中看不到 2017.1 的重新导入 @Winnemucca 我刚刚在 2017.2.现在等待它完成。 在撰写本文时,它现在称为“重新加载所有 Maven 项目”。 这是重命名为“重新加载所有maven项目”吗?【参考方案2】:打开“Maven 项目”选项卡/窗口并单击左上角的“重新导入所有 Maven 项目”开始重新加载其存储库中的所有依赖项。状态栏通知该过程。
是什么让您认为这无法正常工作?也许无法从存储库中加载任何依赖项?
【讨论】:
我们有使用非快照版本进行持续开发的坏习惯,跨项目依赖有时会失败。 恐怕这个问题取决于maven。 Maven 只检查 SNAPSHOT 的更新。根据定义,非 SNAPSHOT 版本永远不会更改,因此 maven 不必在本地存储库中检查比此更新的版本。一个(相当粗鲁的)解决方案是在调用 maven 之前从本地存储库中删除该库。然后它必须重新加载库。 看来重新导入所有强制 -U 标志是我想要的:) 我右键单击父项目并执行 Maven -> Reimport 并希望它会更新所有子项目的依赖关系,但它没有。感谢您的解决方案! 要找到“Maven 项目”选项卡/窗口,请转到查看 > 工具窗口 > Maven 项目【参考方案3】:还有一个有用的设置告诉 IntelliJ 检查新版本的依赖项,即使版本号没有改变。我们有一个本地 maven 存储库和一个更新了几次但版本号相同的快照项目。问题是 IntelliJ/Maven 没有更新这个项目,因为版本号是固定的。
要启用检查更改的依赖项,尽管版本号没有更改,请转到“Maven 项目”选项卡,选择“Maven 设置”并激活“始终更新快照”。
【讨论】:
哈! JAVA 项目中的自动更新...我不得不说这个并不总是赢家...甚至可能会被 Maven 3+ 皱眉 @beauXjames .. 这对我不起作用,但我正面临同样的问题。如何解决这个问题。 我经常进入本地 repo (user\.m2\...) 目录并删除我知道与我的项目相关联的那些,然后让安装过程退出并再次从从头开始,所以没有版本冲突 来自help
:“如果您希望 IntelliJ IDEA 同步更新快照,请选中此复选框。”换句话说,它不是全自动的——你必须Synchronize
(在右键菜单或Ctrl-Alt-Y
),但是启用这个选项会导致它获取更新的SNAPSHOT
版本。警告:可能还涉及其他微妙之处,例如Import Changes
——到目前为止,这对我来说似乎还不能完全重现。也许这一切都在我的想象中——似乎总是有效的是完整的reimport
,正如其他答案中所建议的那样。【参考方案4】:
适用于 IntelliJ IDEA 14.0
项目 > [你的项目名称] > 右键单击 > Maven > 重新导入
【讨论】:
【参考方案5】:运行这个命令
mvn -U clean install
【讨论】:
虽然这是一个解决方案,但需要从 CLI 完成。问题在于从 IDEA 内部进行。 在 IDE 上,您可以执行 maven 目标并使用上面的命令,而无需打开 CLI 或终端 这违背了在 IDEA 中集成 maven 的目的。 我们讨论的是 -U 选项,IDEA 中不存在该选项。 “重新导入”选项听起来像是,但事实并非如此。 我看到您指的是键入和执行一个 Maven 目标,在这种情况下它是可能的。但是,我指的是 -U 不在右侧的内置菜单中(“Maven 项目”)。【参考方案6】:下面最左边的按钮(蓝色循环)也重新导入所有 maven 项目:
【讨论】:
感谢您的评论。我在这篇文章中看到的包含“重新加载”一词的答案太少了,在这种情况下,这似乎与我猜“重新导入”过去所做的事情相同。【参考方案7】:如果重新导入不起作用(即在 pom 更新后没有删除旧版本的依赖项),还有一次机会:
打开项目设置(CTRL+SHIFT+ALT+S) 在模块上,删除所有要重新导入的库(例如重复项) IDEA 会警告有些还在使用中,请确认 应用并选择确定 然后重新导入所有 maven 项目。【讨论】:
谢谢,这行得通,虽然现在库根本没有显示在“外部库”下,但项目仍然成功地使用了新库。我想知道当 IntelliJ 无法更新外部库部分以匹配现实时,它出了什么问题。【参考方案8】:设置 > Maven > 始终更新快照
【讨论】:
使用 IJ 2020.3.2 为我工作 只有这个选项对我有效,强制 Maven 从远程源下载最新的 JAR,而不是使用本地 .m2 存储库中的 JAR【参考方案9】:在最新的IntelliJ IDEA版本(2020.1.3 Ultimate Edition)中,修改pom.xml后需要点击编辑器窗口右上角出现的这个小家伙
这个小家伙太小了,位置不显眼。我喜欢在右下角显示警报的早期版本。在这个版本中仍然找不到启用自动导入的选项。
另一种选择
从右侧的属性面板中,选择 Maven 并单击重新加载图标。如果在右侧面板上看不到 maven,请从 View > Tool Windows > Maven 打开它
【讨论】:
感谢您的回答!!!我承认在你的暗示之前我觉得很愚蠢,我基本上总是关闭我的整个项目并重新打开它!!! 这小家伙太小了,我点关闭btn反而不知道怎么重新打开0.0【参考方案10】:转到文件 |设置 |构建、执行、部署 |构建工具 |马文
选择“始终更新快照”
【讨论】:
【参考方案11】:我遇到了 IntelliJ 无法编译类的问题,声称缺少项目之间的依赖关系。 按照此问题的答案中的建议重新导入项目并不能解决问题。 我的解决方案是:
-
删除所有项目(项目选项卡/右键单击根文件夹/maven/删除项目);
关闭编辑器;
在命令行使用maven编译所有项目;
在同一个项目上打开编辑器;
再次将项目添加到maven(maven选项卡/添加maven项目(绿色+)/选择根pom);
警告:在某些项目中,您可能需要增加 maven 导入的最大内存(maven 选项卡上的 maven 设置/导入/导入器的 VM 选项)。
【讨论】:
【参考方案12】:如果您对任何依赖项使用版本范围,请确保 IntelliJ 使用 Maven 3 导入项目。您可以在以下位置找到此设置:Settings > Maven > Importing > Use Maven3 to import project
。否则您可能会发现 SNAPSHOT 版本没有正确导入。
【讨论】:
【参考方案13】:如果您在 IntelliJ 中工作,有四种独立的方式来刷新 maven 存储库。 它们中的每一个都会刷新您计算机上的另一个本地存储库或以不同方式刷新它们。
1. mvn -U clean install
2. Ctrl+Shift+A - Reimport
3. Round arrows in the Maven window
4. Ctrl+Alt+S , go to Build, Execution, Deployment | Build Tools | Maven | Repositories -choose rep - update
有趣的是,人们常说,最后一次刷新等于 Maven 窗口中的圆形箭头。但是,根据我的经验,它们是完全不同的!证明:我们的大项目最后一次刷新失败,但没有它就存在并快乐地运行。并且双圆箭头在上面运行正常。
这四个都可以帮助您解决问题或/和发现自己的问题。例如,为了运行我们的实际项目,只需要第一个,但为了在 IntelliJ 中进行测试,我们还需要 2 和 3。当然,也有人需要 4。 (为什么 IntelliJ 有它?)
【讨论】:
【参考方案14】:要删除所有依赖项,您可以简单地删除本地 maven 存储库:默认情况下 ~/.m2
文件夹。然后一个一个地重建你的项目:
mvn clean
mvn package
【讨论】:
以上是关于强制 Intellij IDEA 重新读取所有 maven 依赖项的主要内容,如果未能解决你的问题,请参考以下文章