一,前言
vscode我感觉是一个特别好用的开发工具,我根据文章https://www.cnblogs.com/WangBoBlog/p/9464281.html去搭建一个简单的springboot工程,但是在这个过程中却遇到了一个问题:
按F5调试模式启动的时候,vscode的左下角弹出了一个提示:提示说编译失败,要不要继续启动?提示截图如下:
本文接下来记录了解决这个问题的思路
二,出问题前的另一个小坑
按照文章(https://www.cnblogs.com/WangBoBlog/p/9464281.html)中步骤1-3操作都很顺利,在此也对作者表示感谢。
但是到了第四步的时候,按照文章上的步骤,打开的配置文件与文章中的不一致,猜测是vs版本的不同导致的。
我的操作步骤如下。
1,打开调试界面(就是vscode界面左侧中的小虫子)然后点击添加配置
2,然后会弹出一个开发语言选择框,我们这里选择java
3,ok,到这里就可以按F5启动调试模式了。
三,真正的问题出现
按照上一步,我们成功的启动了调试模式,但是在访问localhost:8080时,会出现找不到页面的错误(这是因为我们的springboot程序没有提供任何可以访问的路径):
那么我们就新建一个controller包和一个IndexController的控制器,代码如下:
ok,心里想着见证奇迹的时候来了,殊不知,在按下F5的是时候出现了错误
四,动手解决问题
出现了问题不要慌,解决就好。
这个时候就出现了一个很尴尬的情况,我觉得是vscode做的不够好的地方:虽然告诉我出现了错误,但是没有告诉我错误的原因或者详情。
只好点击Learn More来寻找答案,点击之后就进入了一个vscode的官方网站,并确直接定位到错误信息的地方(赞),如下图:
vscode针对这个错误给了两个解决方案:
1,打开“问题”视图,检查代码错误并修复错误,其实就是告诉我,可能是我自己写的代码的问题
2,通过第一步排除了代码的问题,那只能是扩展的问题了,我们点击蓝色的连接,继续追查问题,截图如下:
这里是对java debug扩展如何工作的一些说明,让我确认java扩展是否在正常工作,如果没有正常工作给了我四个方案去处理。
经过检查vscode 发现我的扩展是正常工作的(因为我的vscode右下角有大拇指图表)
五,再次陷入尴尬
经过第四步对问题的追查,发现似乎vscode和java扩展都是正常的。同时我的代码也是没有问题的,仿佛陷入了一种无计可施的局面。
也许是命中注定,神奇的是,我用鼠标点击了一下那个说明扩展正常运行的“大拇指”,惊喜的发现如下错误信息:
简单的来说,这段信息告诉我,在编译工作空间的时候出现了一个错误,一个class文件没有写入,工程可能不一致,如果是这样请刷新工程重新编译,resource后面的路径不就是我新增的controller吗?
打开项目所在文件夹,在target中找到IndexController所在的目录,确实没有编程出class文件。
六,解决问题与遗留的疑问
解决方法:
1,找到没有编译的java文件,随便找个地方,打几个空格然后保存,就会编译出class文件了。
2,重启vscode ,运行maven命令:mvn clean compile,然后在启动调试模式。
遗留的疑问:虽然这个方法可以编译出class文件,但是治标不治本,还请相关的大神看到这篇文章后给与指导