前言
之前构建源码的时候就出现了这种明明jar包存在,却报找不到jar异常的问题,当时也是解决了很长时间发现把impl文件删除重新生成,才解决。因为像这样的问题,再网上没有一个明确的答案,因为每个人遇到的问题不一样,处理的方式也不一样。
最近在导入别人代码的时候又遇到了这样的异常,但是我发现按照原先的方法解决不了这个问题。最后又是花费了很长时间才解决。
由此就把所有的解决方式都记录一遍,方便你我他在这个问题上能够及时解决。
问题出现场景
- 构建源码
- 导入别人的程序
- 前几天还正常,现在不正常了
问题出现原理分析
首先我们得知道我们是在哪里出现的问题,是在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编译报错。
问题处理方法
-
项目的编译语言设置是不是一致
确认这几个地方是否都一致。jdk13就都是13,1.8的话就都是1.8. -
重新导入jar包
-
清除idea缓存
-
删除iml文件,然后在当前工程目录下执行mvn idea:module重新生成iml文件。
-
重新编译构建项目:mvn clean install -X
-X是为了打印构建的日志。
-
将ide构建或者运行操作委托给maven
以上就是关于这个问题我知道的所有解决办法。