【小捕快上线】Springboot在2.1.5版本下的兼容问题排查
【小捕快上线】Springboot在2.1.5版本下的兼容问题排查
问题出现流程记录:用Eclipse4.7.2版本直接建立了一个Springboot,在建的过程中直接选的是2.1.5的版本,里面只是选择了web、web-service,无奈写好controller之后,都没有走到controller进程就结束了,掉到坑里了吗?
下面是爬坑的过程:
1、先确定代码过程,用最简单的demo,提示Start Application in xx S,进程自动关闭了
2、mvn update多次,强制更新下载,还是不行
3、开始查是不是tomcat和2.1.5的版本有兼容问题?还是Eclipse的环境有啥问题(Eclipse中装了sts的插件,更新了插件之后还是不行,从官网上查了Eclipse最新版本,发现竟然每一个Eclipse版本都有其对应的sts版本,想到是否可能是工具的兼容问题),因此接下来用不同的方式进行打包和创建工程以验证猜想?因为之前用2.0.6Release的Springboot版本创建的工程运行是成功的(半年前的项目),将有问题的工程中的pom文件中的Springboot版本改成2.0.6Release就能够运行成功
4、尝试debug,配置的过程中想到了试一下mvn直接clean install试试打出来的jar包是否可以,因为放到服务器上也是通过这种方式打包,之后运行通过java -jar xx.jar,事实证明,这样是可以的,到目前为止还没有想到是什么问题
5、因为本地还有IDEA,直接建一个很简单的工程之后,放入controller,之后运行成功
6、这里捋出来几个方向:
(1)可能是工具问题(可能版本不够新,有兼容问题,STS的支持+最新版本的Springboot有问题)
(2)2.0.6Release版本运行和2.1.5Release版本运行的时候,依赖的jar包有什么不同,查看之后发现jar包版本不同 —— 同时查到一个关于使用阿里镜像导致下载库失效的问题,尝试进行了库的替换(但因为替换过程中字符编码可能存在一些问题,导致本地解析settings文件有问题,因此直接使用了默认的settings.xml文件,反而2.1.5版本的好用了)
至此就能够完全明确了,发现IDEA和Eclipse中的mvn的settings路径设置是不同的
所以遇到这种环境的坑就是要:
(1)先mvn update,多换几种不同的mirror镜像下载库
(2)通过不同的工具对比,确定唯一可能的变化值,在此基础上继续分析
mvn的打包命令为:进入到目标工程根目录下,通过mvn clean install,成功后会提示Build Success
运行时,进入到工程目录的根目录的target目录,通过java -jar xxx.jar
基于mirror的配置的,可以自行百度,一般会有aliyun的,还有maven官方库配置的~
另外,注意:maven的路径配置的,最好是中间没有空格的,比如:Program Files,这个Program Files的空格在很多情况下比较坑,所以尽量避免