解决 Delegate IDE build/run actions to Maven 编译两次的问题
起因:我的电脑炸了,吸取教训,以后重要的东西千万不要存在C盘,特别是我们 IT 行业的,代码和文档都是一点一点积累的经验。突然没了,总感觉少了点啥,平时我的代码都是放在D盘,但是很多文档放在C盘,导致此次丢失了很多文档,心疼~
电脑炸了,运维同事给我换了新的固态硬盘,C盘的东西是保不住了,还好其他盘符的东西还在。所以很多软件要重装也是在所难免的,其中重装 idea 的时候就遇到了比较棘手的问题。
如图,重装了idea之后,启动项目,就报错如下,一开始觉得肯定是小问题,对着 maven 一顿操作,各种清缓存,删包重新下载,换依赖,换版本,换仓库,能做的基本上是都做了。
最后还是妥协了,百度了一个办法,就是在 Setting-maven-running 中勾选上 Delegate IDE build/run actions to Maven
勾选上这个之后确实能运行了,真的神奇,但是运行了多次之后发现了一个问题,就是每次运行之前,会先执行 maven 的打包功能,简直就是反人类
正常情况下,有编译文件就能运行了,没必要打 jar 包,还是百度看到了这个问题,只要勾选上 Delegate IDE build/run actions to Maven 就会出现这个问题,但是现在又不能取消勾选,否则项目就启动不起来,又回到了第一步。
后面去百度了各种方法,比较有说服力的是说 idea 2020.1 版本问题,我看了一下,我的确实是这个版本。但是想来想去也是不应该,总感觉这有点甩锅型了,治根不治本,
其他的问题,也是百度不到啥了,估计这个是个天坑,不少人也因为这个换了版本,或者继续将就下去。
思考:这到底是谁的问题?idea 的问题?还是 maven 的问题?或者两者的问题?
maven 依赖确实下载下来了,idea 中看着是把依赖都加载进去了,但是运行的时候报错在不到 jar 包又是怎么回事?到这里,脑子中大致有了个想法,难道 idea 假死?看着像加载进来了,但实际又没有加载?这种情况,第一个想到的就是缓存问题,然后又是百度一顿操作,各种清缓存,最后还是失败了。
没有办法,去看看 idea 是怎么样和 maven 做关联的,怎么样在 idea 中能执行 maven 命令的 。
百度了半天,很显然,答案都是有关 idea 怎么配置 maven 的,很显然这也不是我要的答案。
偶然间翻到一个命令 mvn idea:idea , 这个命令意思是重构一下,但是我后面去特意查了这个命令,也没有找到想要的答案,但是我在 idea 的命令行中执行这个命令,很神奇,它给我下载了很多类似 mvaen 的依赖。
很可惜,当时比较忙,忘了这个命令是出自哪里了,一直到后面我翻历史记录也是找不到了,这篇博客也是隔了一个月才写,9月份我是真的忙,但是这个一直是个天坑,我一直印象深刻,所以今天记录一下。
解决办法:在 idea 命令行中输入 mvn idea:idea 重构一下
对于这个天坑,希望大家能早日脱坑。