快捷搜索: 王者荣耀 脱发

springboot打包失败,Caused by: java.lang.NoClassDefFoundError

记录一个小错误。 项目一切正常,也能直接运行。唯独在最后打包发布时,一直打包不成功,错误信息如下:

java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: java.lang.IllegalArgumentException: Unresolvable class definition for class [com.ysl.blog.controller.SysController]
Caused by: java.lang.NoClassDefFoundError: com/ysl/blog/controller/SysController (wrong name: com/ysl/blog/controller/Syscontroller)

编译时都能找到,查看target目录下也有该类。偏偏在运行加载时找不到。 问题排查: 去掉SysController就能打包成功,那么确定问题就出在SysController上。于是比对SysController与其他Controller的区别,主要是依赖什么的,也没看出什么区别。

突然想到我的测试目录,由于测试目录使用MockMvc测试的接口,我就将包名、类名都弄成与main目录下一致。所以这里也会有一个SysController。有可能问题就出在这里。 果然有区别,测试目录下的SysController中字母C写成了小写。改成与main目录一致后就能正常打包了。

写篇博客,提醒自己不要再粗心了。

经验分享 程序员 微信小程序 职场和发展