IntelliJ的“重新导入所有Maven项目”按钮是如何工作的?
我之所以这样问是因为我看到IntelliJ的重新导入按钮的行为是不同的,而不是运行带有-U
参数的mvn
命令的行为,我不清楚为什么。
发布于 2016-09-27 14:20:30
我认为您错过了本地和远程存储库的部分。
如果您运行mvn -U
,它将迫使maven从远程存储库下载所有库,这些库将是您的公司company或maven repo。与-U
的主要区别在于,-U
将使用远程快照jars覆盖本地快照jars。本地快照jars来自安装,remote来自部署命令。
再进口会带来混乱。重新导入将加载本地jars,而不是远程jars,特别是快照jars。您可以在maven菜单中启用强制更新快照,这将在intellij中启用-U
开关。
还要反复检查您是否与系统maven和intellij共享相同的.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
asker给未来读者的笔记
这个答案并没有完全解释“再导入”按钮的行为,所以我将在这里为后人补充我的观察。
IntelliJ的缓存(即.idea文件夹)似乎有些问题。在终端中使用mvn clean install -U
可以像这里描述的那样工作,但不影响IntelliJ IDE;缺少的符号仍然被描述为丢失。但是,如果我按下“魔法重新导入”按钮,那些丢失的符号就会成功地解决。
我只能假设-- reimport按钮--基本上是指示IntelliJ刷新自己的缓存,这就是行为不同的原因。
发布于 2015-09-10 06:49:57
如果您更改了pom.xml文件,IDEA需要更新项目结构。例如,如果您添加了一些更多的依赖项,则IDEA需要将它们添加为项目库。
因此,"Maven > Reimport“正是用于此--用于重新导入maven模块。它不会触发任何带有参数的maven命令。
"Reimport“对项目中的所有maven模块执行相同的操作。
另外,在“设置>构建、执行、部署>构建工具> Maven >导入”中,您可以选择"Import项目自动“,而不是使用这两个操作。这将在更改pom.xml时自动调用“重新导入”操作。
https://stackoverflow.com/questions/32484065
复制相似问题