IDEA build报错,显示程序包不存在而maven compile无问题

1 问题描述

抽风症状一:打开项目之后外部引用的包都飘红,必须点击maven的reimport才可以洗白
外部引用的包全部飘红

抽风症状二:点击IDEA上方的锤子build失败,显示各种程序包不存在,而托管maven compile无问题
点击IDEA上方的锤子build疯狂不存在
IDEA版本:2020.1

2 尝试

terminal中键入mvn idea:idea 无效
在搜罗了网上的各种解决方案之后,可以确定的是出现这个状况的IDEA版本都是2020.1

3 问题定位

原因:IDEA的Build(编译)操作和Maven的Build是分开的,并不是一回事。
我之前修改了IDEA的默认maven本地仓库,但是这个版本的IDEA的build似乎还是只会去读取C:\Users\Administrator.m2里面有个repository文件夹,这就导致maven compile是前者描述的我改过的新的仓库,而锤子build的是C盘下那个老的仓库。

方案:把IDE的Build/Run操作委托给Maven来进行,让两者统一,也就意味着IDE和Maven始终使用相同的classpath进行编译等。具体做法是,在File -> Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Runner对话框下,勾选“Delegate IDE build/run actions to Maven”。这样,当你点击绿色箭头运行的时候,顺带执行的Build就是Maven的Build,那么只要maven能成功,操作就没问题。
盗取博主「六吨代码」老哥文章一张图和问题解决方案希望不要介意,哈哈。
在这里插入图片描述
后续(未经测试):这样虽然解决了包不存在问题,但是ide的build和maven的biuld都运行了,如此一来,一个操作相当于执行了两次。

后续的解决方案:Maven Runner有个Skip Tests

终极解决方案:换IDEA版本

参考: IDEA build委托到Maven build – 解决代码没有编译错误运行却报错: "程序包xxx不存在"的问题以及下方的评论


版权声明:本文为fashi11211原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。