一,前言
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文件,但是治標不治本,還請相關的大神看到這篇文章后給與指導