记录一个小错误。
项目一切正常,也能直接运行。唯独在最后打包发布时,一直打包不成功,错误信息如下:
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目录一致后就能正常打包了。
写篇博客,提醒自己不要再粗心了。