maven - IntelliJ 的 "Reimport All Maven Projects"按钮如何工作?

标签 maven intellij-idea intellij-13 intellij-14

IntelliJ 的“重新导入所有 Maven 项目”按钮实际上是如何工作的?

我问这个是因为我看到 IntelliJ 的重新导入按钮的行为是 不同比运行 mvn带有 -U 的命令争论,我不清楚为什么。

最佳答案

我认为您错过了本地和远程存储库的部分。
如果你运行 mvn -U它强制 maven 从远程存储库下载所有库,这些库将成为您的公司 nexus 或 maven repo。与 -U 的主要区别没有是-U将使用远程 SNAPSHOT jar 覆盖您的本地 SNAPSHOT jar。本地 SNAPSHOT jar 来自 install,远程来自 deploy 命令。
重新导入会带来困惑。 重新导入 将加载您的本地 jars 而不是远程 jars,尤其是 SNAPSHOT 的。您可以在 maven 菜单中启用强制更新快照,这将启用 -U切换 intellij。
还要仔细检查您是否与系统 maven 和 intellij maven 共享相同的 .m2 目录。您可以在用户设置文件中看到它并将其与命令行 maven 进行比较。只需运行 mvn -X并检查设置部分。

[DEBUG] Reading global settings from /usr/local/Cellar/maven/3.3.9/libexec/conf/settings.xml
[DEBUG] Reading user settings from /Users/xbaran/.m2/settings.xml
[DEBUG] Reading global toolchains from /usr/local/Cellar/maven/3.3.9/libexec/conf/toolchains.xml
[DEBUG] Reading user toolchains from /Users/xbaran/.m2/toolchains.xml
[DEBUG] Using local repository at /Users/xbaran/.m2/repository
enter image description here

给 future 读者的提问者说明
这个答案并没有完全解释重新导入按钮的行为,所以我将在这里添加我的观察以供后代使用。
IntelliJ 的缓存(即 .idea 文件夹)似乎发生了一些事情。使用 mvn clean install -U在终端按此处所述工作,但不影响 IntelliJ IDE;丢失的符号仍被描述为丢失。但是,如果我按下“神奇的重新导入按钮”,那些丢失的符号就会成功解决。
我只能假设 重新导入按钮基本上是在指示 IntelliJ 刷新自己的缓存 ,这就是行为存在差异的原因。

关于maven - IntelliJ 的 "Reimport All Maven Projects"按钮如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32484065/

相关文章:

Android Studio 查看更改应用于哪些文件

intellij-idea - intellij thymeleaf 命名空间 th 未绑定(bind)

android-studio - 使用光标键选择 IntelliJ 列

java - 如何在 Cucumber 中执行并行测试

java - Eclipse 和 Intellij 不断因 EXCEPTION_ACCESS_VIOLATION 崩溃

java - 无法导入GenericBooleanPrefItemBasedRecommender

java - IntelliJ 将类与冲突的类一起移动到新包中?

java - Processbuilder 在 Intellij 中成功,但在 Eclipse 中失败

java - 我可以使用多个 try catch block 来抛出多个错误或异常吗

java - 读取程序集时出错 : Descriptor with ID <xml path> not found