目录
问题描述
遇到一个问题:
项目依赖冲突,项目是springboot项目,这个冲突之前处理过,所以不难解决,但是遇到一个诡异的问题
一开始发现
但是直接用idea运行启动类的main方法,项目访问正常
但是使用java jar启动后访问项目文件上传报错,报错是正常的
问题排查
解压打包后的jar文件发现,maven依赖中的模块都在\BOOT-INF\lib下(解压后)
这就很诡异了,直接用idea启动访问正常,但是打包后不正常(不正常逻辑是正确的,因为有jar冲突),两者为什么会有差异?
不停的mvn clean install -DskipTests无效,rebuild项目多次无效,总能复现,偶尔两种情况都报错(直接用idea启动和打包后启动jar访问)
越来越诡异
问题解决
查看项目依赖
mvn dependency:tree >1.txt
发现每次修改依赖后,依赖是正确的
查看idea maven依赖,新发现依赖更新延迟,排除了某些依赖,但是依赖有时候还存在
xmlbeans:2.3.0已经排除,但是idea maven依赖中扔存在
最终发现是因为idea的问题,因为自己在不停地修改pom文件,导致idea有时候依赖没有更新下来
具体就是:
1.如果这次没有解决jar冲突,但是重新启动前解决了且idea没有更新依赖,那么用启动类启动看起来就是:冲突没解决,但是访问不报错
2.如果这次解决了jar冲突,但是重新启动没解决冲突且idea没有更新依赖,那么用启动类启动看起来就是:冲突解决,但是访问报错