SpringBoot项目通过Maven打包后运行报错
先看报错:
重点: Exception in thread "main" java.lang.NoClassDefFoundError: 说明运行Jar包的过程中某依赖项找不到!!!!
初始认为环境变量配置引起找不多对应的类,然后了无数次的尝试,未果........
换了个项目打包,结果运行起来正常了,目光转移到项目本身.
分析: 项目是Idea开发的SpringBoot项目,在Idea上运行一切正常,说明程序可以运行,问题出在了打包过程中.
打包我使用的SpringBoot项目POM文件中的Maven插件执行的,如下:
然后开始核对问题项目和正常项目在POM文件中的build标签有什么不同.
正常项目:
异常项目:
可以看到两个项目中的配置差异还是很明显的,然后问题项目中我开始尝试注释掉正常项目中没有的标签.........
然后就找到了它:
将红框中的内容注释掉后,重新打包项目,运行jar包正常.
然后各种查这个include标签到底是何方神圣,未果,还希望大神指点迷津.
对比了注释include标签前后的jar包,发现当include生效时jar包不到2M,注释掉后80M, 虽然不知道include是个什么鬼,这里也猜出一二, 他会控制依赖不被打入到jar包中. 这就是为什么最初的运行找不到依赖中的类!!!!!!!!!!!
吐槽一下:问题jar包之前有人在Linux上运行成功了,导致我一直认为我本地的JDK环境存在问题.真是巨坑!!!!!!!!!!!!