前言
最近在把一个亿老项目交割给同事,同事在导入项目运行时遇到IDEA报包不存在,但实际存在的问题,最终通过以下方式解决
现象
在IDEA里启动运行项目,报某个类有问题,引入的包不存在。
点击这个引入的包,可以看到它在左侧外部库里存在。
试过的无效方法
- 双击ctrl,在弹出框中mvn idea:idea
- 在文件里,清空缓存并重启
- 在右侧maven的面板里,点击刷新标志(增量重新加载所有项目)和文件夹刷新标志(为所有项目生成源代码并更新文件夹)
最终解决
- ctrl+ alt+s,输入maven
- 在Maven的子标签下面,勾选”将IDE构建/运行操作委托给Maven“
问题出现原理分析
首先我们得知道我们是在哪里出现的问题,是在IDE编译的时候,还是在maven编译的时候。
因为idea编译跟maven编译不是一回事。
idea中有个设置是 Delegate ide build/run actions to maven,意思就是将ide构建/运行操作委托给maven。
所以当你用命令行 mvn clean install -X的时候报错的时候,那是maven编译报错。这个时候就得从maven依赖项着手处理了。
当你用命令行mvn clean install -X构建正常的情况下,idea运行方法或者Build module的时候报错,那就说明是IDE编译报错。