VS Code(Visual Studio Code)已成為多語言開發(fā)人員的首選文本編輯器。 大量 Javascript、TypeScript、Go、Python 和其它語言的開發(fā)人員都在使用 VS Code 進行編碼,這部分歸功于 VS Code 擴展形成的龐大生態(tài)系統(tǒng)。這些擴展增強和豐富了 VS Code 的體驗,使其成為類 IDE 的超級智能文本編輯器,同時它又極其快速和輕量級。
VS Code 支持 了 Java 開發(fā),許多 Java 擁護者和演講者都使用它上臺演講做現(xiàn)場演示。
以下是 2019 年 Java 開發(fā)人員使用 VS Code 開發(fā)、運行、調(diào)試和部署其應(yīng)用程序的終極指南。
如果您尚未下載 VS Code,那現(xiàn)在就下載并安裝它吧。接下來本指南將假定您至少安裝了 Java 8,盡管 VS Code 也支持 Java 11。您也可以完全跳過本指南,直接參考文檔《 用 VS Code 開發(fā) Java 應(yīng)用》。但是,建議對照下面的指南走查一遍重點部分,這將有助于您更好地利用 VS Code 進行 Java 開發(fā)。
為了使 VS Code 支持核心 Java,作為最低要求,您必須安裝一組擴展。 讓我們逐一深入研究這些擴展。
這個擴展包包含了下文將要詳細介紹的五個擴展。借助它,你無需過多了解就可以開始使用 VS Code。
要使 VS Code 支持 Java,這是唯一一個必須安裝的擴展。其它擴展都是補充性的,您需要根據(jù)要開發(fā)的項目決定是否要安裝它們。
安裝完這個擴展后,您就可以閱讀和編輯 Java 源代碼了。首先創(chuàng)建一個 Helloworld.java 文件,然后用 VS Code 打開 (或者在 VS Code 中創(chuàng)建該文件,然后把它保存在某個文件夾中)。
完成后,您可以打開終端(在 Mac OS 中,使用組合鍵 ?+`),然后輸入命令 javac HelloWorld.java 進行編譯。
VS Code 里內(nèi)嵌的終端
編譯后會產(chǎn)生一個 Helloworld.class 文件。最后,用 Java 命令運行這個類:java helloworld。
Java 語言支持?jǐn)U展通過使用 Eclipse 語言服務(wù)器協(xié)議(Eclipse Language Server Protocol)支持 Java。了解有關(guān) Eclipse LSP 的更多信息。
Java 語言支持?jǐn)U展添加了許多其它功能,可以幫助您快速瀏覽、編寫、重構(gòu)和閱讀 Java 源代碼,您不妨使用 VS Code 這個輕量級文本編輯器來替代其它 IDE。
面包屑導(dǎo)航 (頂部) — 大綱視圖 (左下角)
查看概述頁面可以獲取這個擴展的特性以及重構(gòu)快捷鍵的完整列表。
掌握了在 VS Code 中編寫和閱讀 Java 代碼的基礎(chǔ)知識后,下一步自然就是運行和調(diào)試代碼了。 這正是該擴展提供的功能。 這個擴展使用您計算機上的默認(rèn) JAVA_HOME,當(dāng)然您也可以自定義它。
運行 | 調(diào)試 Java 應(yīng)用
它具備常見的 Java IDE 調(diào)試特性的所有能力,并且支持更多的自定義,可以讓您控制代碼如何被執(zhí)行以及調(diào)試器如何連接到 JVM。 它還支持遠程 JVM。
安裝這個擴展后,您會在主方法上方看到兩個超鏈接,如上圖所示。若您單擊運行,代碼將被編譯并執(zhí)行。您還可以設(shè)置斷點并點擊調(diào)試。
對于遠程調(diào)試,您需要添加新的配置。 切換到調(diào)試視圖(在 Mac 上按 Shift +?+ D)并點擊配置按鈕?。 這樣會打開 launch.json 文件。 單擊屏幕上的添加配置藍色按鈕。 這會打開一個如上圖所示的彈出菜單。
現(xiàn)在,您可以自定義一個能插入遠程 JVM 的 啟動項了。您只需提供主機名、端口號等詳細信息。
和其它調(diào)試 IDE 一樣,您可以在運行期間查看變量、堆棧追蹤,甚至對變量內(nèi)容進行更改。
VS Code 里在調(diào)試過程中更改 Java 變量
至此,我們完成了用于閱讀、編寫、運行和調(diào)試 Java 代碼的 VS Code 基本設(shè)置。
掌握了 Java 編碼的基礎(chǔ)知識后,您很快就需要使用庫、依賴項、類路徑等。在 VS Code 上進一步改進 Java 支持的最佳方法是添加以下三個擴展:
Java 依賴查看器(Java Dependency Viewer)
針對 Java 的 Maven 擴展 (Maven for Java)
微軟的 Java 測試運行器(Java Test Runner)
讓我們分別看一下這幾個擴展。
這個擴展為您提供兩個核心功能。 其中主要的一個功能是提供了“項目”的概念,您可以手動向項目中添加庫(JAR)。 第二個功能使項目當(dāng)前設(shè)置的 classpath 可視化,即使是 Maven 項目(參見下文針對 Java 的 Maven 擴展)。
打開命令托盤(Shift +?+ P)并輸入 create java:
創(chuàng)建一個 Java 工程
您需要選擇創(chuàng)建項目的位置。項目由與項目名稱同名的文件夾組成(您選擇了創(chuàng)建項目的位置后,接下來命令托盤會繼續(xù)詢問項目名稱,例如你可以輸入 myworkspace)。
創(chuàng)建項目后,VS Code 將在新窗口中打開這個新文件夾。
新的 Java 工程
就像您看到的那樣,這個項目具有一個基本結(jié)構(gòu),其中包含了 bin 和 src 文件夾。 在 src 中,開始會有一個基本的 Java 類。 如果您是一位經(jīng)驗豐富的 Java 開發(fā)人員,一眼就會發(fā)現(xiàn)這個擴展使用的是 Eclipse 項目的格式,這是因為它與 Eclipse 語言服務(wù)器協(xié)議和其它擴展能很好的協(xié)同工作。
您可以編輯 .classpath 文件,指定全部自定義 JAR 包所在的目錄,這個目錄可以放在任何位置,例如某個 lib 文件夾。這些擴展會自動加載 classpath 中包含的類庫,使你能夠運行自己的代碼。
編輯.classpath 文件增加類庫
Maven 是 Java 生態(tài)系統(tǒng)中使用最廣泛的項目構(gòu)建和依賴關(guān)系管理工具。因此,通過該擴展,您幾乎可以用 VS Code 處理任何類型的 Java 項目。
您將能夠通過 Maven 原型(archetype)生成和引導(dǎo) Maven 項目、管理依賴關(guān)系并觸發(fā) Maven 目標(biāo)(goal),并借助一些智能代碼補全功能編輯 pom. xml 文件。
Maven 命令
讓我們來看一下:
再次打開命令托盤,然后輸入 Maven。
選擇 Generate from Maven Archetype。
選擇 maven-archetype-quickstart。
這個擴展會要求您選擇目標(biāo)文件夾,以便在其下面生成項目文件夾。 輸入焦點會跳轉(zhuǎn)到終端,您必須在那里輸入 Maven 命令行的參數(shù),不過不用擔(dān)心,它會一步一步地引導(dǎo)您。
創(chuàng)建項目后,直接從終端調(diào)用 code 即可打開它。
在 VS Code 中打開新創(chuàng)建的目錄
好了,您現(xiàn)在應(yīng)該已經(jīng)在 VS Code 中打開您的 Maven 項目了。您可以做的最基本的事情就是運行您的代碼。 您有兩個選擇:
如前所述,使用 App 類中 main 方法旁邊的 Run 超鏈接運行您的代碼。
使用 Maven。
如果您使用 Java 調(diào)試擴展(運行 | 調(diào)試)觸發(fā)器,擴展將使用 Maven 生成的 classpath,以確保所有依賴項都正確地添加到類路徑中。
如果使用 Maven 運行 Java 代碼,您可以像往常一樣使用終端,或者打開命令托盤并輸入 Maven Execute Commands。
顯示 Maven 動作的命令托盤
它會要求您選擇一個項目。 由于您只有一個項目,直接在其上按回車即可。 接下來,您將看到一個列表,它包含了所有默認(rèn)的核心 Maven 目標(biāo)。 選擇 package 生成 JAR 文件。
如果要運行自定義目標(biāo),例如從 Maven 插件繼承的目標(biāo),您可以使用 Maven 視圖:
執(zhí)行來自 Maven 插件的目標(biāo)
編輯 pom.xml 文件并添加依賴項后,VS Code 將自動重新加載 classpath,然后您就可以從新的依賴項中導(dǎo)入類和包。 這個過程非常干凈、順暢。
最后一步是增強單元測試的運行、調(diào)試和測試結(jié)果的可視化。此擴展程序?qū)⒊溄犹砑拥娇梢詥为殘?zhí)行的單元測試 (支持 JUnit 和 TestNG),您可以立即在 VS Code 中看到報告,如下面的示例所示。
在 VS Code 中運行單元測試
此擴展還將啟用測試資源管理器視圖,因此您可以專注于代碼的單元測試,并以更加符合測試驅(qū)動開發(fā)(TDD)的方式編寫軟件。
測試瀏覽器
此擴展目前僅適用于 Maven 項目,因此請確保您安裝了針對 Java 的 Maven 擴展。
如果您現(xiàn)在對使用 VS Code 進行 Java 開發(fā)感到滿意,那么是時候進一步改善您的使用體驗了。 以下是一些擴展列表,可以改善您的日常工作體驗。
這只是接下來要添加哪些擴展的建議,而不是事實標(biāo)準(zhǔn)的列表,但它可以讓您先行一步。
希望您已經(jīng)在使用 Git 了,無論是通過 GitHub 還是其它任何服務(wù)或環(huán)境。此擴展為您提供有關(guān)源代碼著作信息的洞察,例如 “誰添加了此方法以及何時添加”。
上圖就是安裝了 GitLens 后 Java 類的樣子??纯茨切]有數(shù)字的行,它們是對提交歷史的注釋。 您也可以簡單地將鼠標(biāo)懸停在特定的行上,它將顯示這一行是何時、由誰、在哪個提交哈希上添加的。
如果您是構(gòu)建 REST API 的開發(fā)人員,那么這是您必須安裝的 VS Code 的擴展。 有了它,您將能夠編輯包含 HTTP 調(diào)用的 .http 文件。 編輯器將快速提供代碼片段和模板,它會為您提供一個即點生效的神奇的超鏈接,它會觸發(fā) HTTP 調(diào)用并在旁邊打開結(jié)果。
就這樣了! 您現(xiàn)在擁有一份完整的 VS Code 設(shè)置,可以實際進行任何類型的 Java 開發(fā)了。
如果你是一個狂熱的 Spring 開發(fā)人員,一定想知道 Pivotal 和微軟提供的那些能增強 Spring Boot 應(yīng)用開發(fā)體驗的重要擴展。
最后,有一個可以幫助您編寫 build.gradle 文件的 Gradle 擴展。
以下是一些額外的 Spring 工具供進一步學(xué)習(xí):
Spring Boot Tools
Spring Initializr Java Support
Spring Boot Dashboard
Gradle Language Support
https://dzone.com/articles/visual-studio-code-for-java-the-ultimate-guide-201
點個好看少個 bug ??