在 VS Code 中管理 Java 專案

Project Manager for Java 擴充功能可協助您管理 Java 專案及其依賴項。它還能協助您建立新的 Java 專案、套件與類別。若要在 Visual Studio Code 中獲得完整的 Java 語言支援,您可以安裝 Extension Pack for Java,其中已包含 Project Manager for Java 擴充功能。

安裝 Extension Pack for Java

有關如何開始使用此擴充功能套件的詳細資訊,您可以查看 Java 入門教學課程。

專案檢視

Java 專案檢視可協助您檢視 Java 專案及其依賴項,並提供專案管理工作的進入點。

project view

預設情況下,Java 專案檢視顯示在檔案總管檢視下方。如果您看不到它,請嘗試點擊檔案總管標題列中的 ... 按鈕,然後選取Java 專案

導覽列的溢出選單按鈕中還有更多選項可供使用。例如,您可以在階層式檢視與平面檢視之間進行切換。

overflow button

您可以在檔案總管的節點旁邊找到按鈕,這些按鈕為某些動作提供了實用的捷徑。

inline button

每個節點的右鍵選單中也有許多實用功能,您可以在檔案總管中對節點按一下右鍵將其叫出。

context menu

建立新的 Java 專案

您可以點擊導覽列中的 + 按鈕,或透過命令選擇:Java: Create Java Project...(可在命令面板中使用,快速鍵為 ⇧⌘P (Windows, Linux Ctrl+Shift+P))來建立新的 Java 專案。建立過程中,如果尚未安裝,VS Code 將會根據您的專案類型協助安裝所需的擴充功能。

create project

匯入 Java 專案

您可以透過檔案 > 開啟資料夾... 將現有的 Java 專案與模組直接匯入您的工作區(請確保開啟的資料夾包含建置工具指令碼,例如 pom.xmlbuild.gradle)。Java 版 VS Code 會自動偵測並匯入您的專案。

當您在專案中加入新模組時,可以觸發 Java: Import Java projects in workspace 命令將其匯入工作區。此命令有助於將新專案匯入工作區,而無需重新載入 VS Code 視窗。

匯出為 JAR

您可以從專案檢視中將建置結果匯出為 JAR,或透過執行 Java: Export Jar... 命令來達成。

Export jar from the project view

設定專案執行階段 (Runtime)

隨著 Java 的發展,開發人員通常需要使用多個版本的 JDK。您可以透過設定 java.configuration.runtimes 將它們對應到您的本機安裝路徑。該設定具有以下格式:

"java.configuration.runtimes": [
  {
    "name": "JavaSE-1.8",
    "path": "/usr/local/jdk1.8.0_201"
  },
  {
    "name": "JavaSE-11",
    "path": "/usr/local/jdk-11.0.3",
    "sources" : "/usr/local/jdk-11.0.3/lib/src.zip",
    "javadoc" : "https://docs.oracle.com/en/java/javase/11/docs/api",
    "default":  true
   },
   {
    "name": "JavaSE-12",
    "path": "/usr/local/jdk-12.0.2"
   },
   {
    "name": "JavaSE-13",
    "path": "/usr/local/jdk-13"
   }
]

注意:您可以透過在條目中加入 "default": true 來將其中一個設定為預設值。預設的 JDK 將用於您的非受管資料夾(不含建置工具)。

若要查看專案使用了哪些 JDK,您可以觸發命令面板中的 Java: Configure Java Runtime 命令(快速鍵 ⇧⌘P (Windows, Linux Ctrl+Shift+P))。此命令會開啟一個檢視,顯示專案的執行階段資訊。

Project runtime

變更 Maven 與 Gradle 專案的 JDK

如果您想要變更 Maven 或 Gradle 專案的 JDK 版本,您需要在建置指令碼(pom.xmlbuild.gradle)中進行更新。您可以點擊 以查看如何進行此類變更。點擊 將會導覽至該專案的建置指令碼檔案。

變更非受管資料夾的 JDK

若要變更非受管資料夾(不含任何建置工具)的 JDK,您可以點擊 按鈕。它會列出所有可用的 JDK,您可以為非受管資料夾選擇其中一個。

下載 JDK

如果您想要下載新的 JDK,可以點擊 download 連結,或在命令面板中觸發 Java: Install New JDK 命令(快速鍵 ⇧⌘P (Windows, Linux Ctrl+Shift+P))。它將會開啟一個新視窗,引導您下載 JDK。

Download-jdk

注意:若要啟用 Java 預覽功能,請參閱如何在新版 Java 中使用 VS Code

設定非受管資料夾的類別路徑 (Classpath)

Java 專案管理擴充功能提供了一個使用者介面,用於設定非受管資料夾的類別路徑 (Classpath)。類別路徑可以在類別路徑設定頁面中手動設定。您可以透過從命令面板執行 Java: Configure Classpath 命令來開啟它(快速鍵 ⇧⌘P (Windows, Linux Ctrl+Shift+P))。

configure classpath

在極少數情況下,您可能需要透過執行命令面板中的 Java: Clean Java Language Server Workspace 命令來清除 Java 工作區,讓語言伺服器重新建置您的依賴項。

依賴項管理

加入 Maven 依賴項

對於 Maven 專案,您可以點擊專案檢視中 Maven Dependencies 節點旁邊的 + 圖示來加入依賴項。

add maven dependency

管理非受管資料夾的依賴項

如果您的專案是一個不含任何建置工具的非受管資料夾,您可以透過點擊 Referenced Libraries 節點或其下方項目上的 +- 圖示來管理依賴項,或者直接將您的 jar 程式庫拖曳至 Referenced Libraries 節點。

manage referenced libraries

您也可以在類別路徑設定頁面中管理依賴項。請參閱:設定非受管資料夾的類別路徑

在幕後,settings.json 中有一個 java.project.referencedLibraries 設定。以下是關於如何自訂此設定的詳細資訊。

包含程式庫

要參考的程式庫是使用一組 glob 模式來描述的。

例如

"java.project.referencedLibraries": [
    "library/**/*.jar",
    "/home/username/lib/foo.jar"
]

上述設定會將工作區程式庫資料夾中的所有 .jar 檔案,以及指定絕對路徑下的 foo.jar 加入專案的外部依賴項。

這些被參考的程式庫會受到 VS Code 的監控;如果有任何依賴檔案發生變更,專案將會重新整理。

預設情況下,VS Code 會使用 glob 模式 lib/**/*.jar 參考工作區 lib 目錄中的所有 JAR 檔案。

排除某些程式庫

如果您想要從專案中排除某些程式庫,您可以展開 java.project.referencedLibraries 以使用 include/exclude 欄位,並加入一個 exclude 的 glob 模式。

"java.project.referencedLibraries": {
    "include": [
        "library/**/*.jar",
        "/home/username/lib/foo.jar"
    ],
    "exclude": [
        "library/sources/**"
    ]
}

在上述範例中,library/sources 資料夾中的任何二進位 JAR 檔案都會被忽略,不會成為專案的外部依賴項。

附加原始碼 JAR

預設情況下,被參考的 {binary}.jar 會嘗試在同一目錄下搜尋 {binary}-sources.jar,如果找到匹配項,則會將其附加為原始碼。

如果您想手動指定 JAR 檔案作為原始碼附件,可以在 sources 欄位中提供鍵值對映射。

"java.project.referencedLibraries": {
    "include": [
        "library/**/*.jar",
        "/home/username/lib/foo.jar"
    ],
    "exclude": [
        "library/sources/**"
    ],
    "sources": {
        "library/bar.jar": "library/sources/bar-src.jar"
    }
}

透過這種方式,bar-src.jar 就會被附加到 bar.jar 作為其原始碼。

輕量模式 (Lightweight Mode)

Java 版 VS Code 支援兩種模式:輕量 (Lightweight) 與標準 (Standard)。在輕量模式下,語言伺服器僅解析原始程式碼與 JDK;而在標準模式下,匯入的依賴項會被解析,且專案會由語言伺服器進行建置。當您需要快速啟動並以輕量環境處理原始碼(例如讀取原始碼、在原始碼與 JDK 之間導覽、檢視大綱與 Javadoc、偵測及修正語法錯誤)時,輕量模式效果最佳。此外,在原始碼與 JDK 的範圍內也支援程式碼完成功能。

輕量模式不會解析匯入的依賴項,也不會建置專案,因此不支援執行、偵錯、重構、檢查 (linting) 或偵測語義錯誤。若要使用這些功能,您需要將工作區從輕量模式切換為標準模式。

您可以透過設定 java.server.launchMode 並選擇下列選項來控制啟動模式:

  • Hybrid(預設)- 首先以輕量模式開啟工作區。如果您的工作區包含未解析的 Java 專案,系統會詢問您是否切換至標準模式。如果您選擇稍後 (Later),它將保持在輕量模式。您可以點擊狀態列上的語言狀態項目來手動切換至標準模式。
  • Standard - 以標準模式開啟工作區。
  • LightWeight - 以輕量模式開啟工作區。您可以點擊狀態列上的語言狀態項目來手動切換至標準模式。

語言狀態項目會使用不同的圖示來指示目前工作區所處的模式。

  • - 以輕量模式開啟的工作區。
  • - 正在以標準模式開啟工作區的過程中。
  • - 以標準模式開啟的工作區。

點擊語言狀態項目即可切換至標準模式。

Switch to Standard

建置狀態

當您在 Visual Studio Code 中編輯 Java 原始碼時,Java 語言伺服器會建置您的工作區以提供必要的語言功能。您可以透過點擊狀態列中的語言狀態項目,查看詳細的建置工作狀態並觀察幕後的處理情況。當通知顯示語言伺服器正在開啟 Java 專案時,您也可以選取檢查詳細資料 (check details) 連結來查看建置工作狀態。

其他資源

有許多 Visual Studio Code 擴充功能可支援不同的 Java 建置系統。以下是一些主流建置系統的擴充功能:

如果您在使用上述功能時遇到任何問題,可以透過提交 issue 與我們聯絡。

後續步驟

繼續閱讀以了解更多關於:

  • Java 編輯 - 探索 VS Code 中的 Java 編輯功能。
  • Java 偵錯 - 了解如何使用 VS Code 對您的 Java 專案進行偵錯。
  • Java 測試 - 在 VS Code 中使用 JUnit 與 TestNG 測試案例。
  • Java 擴充功能 - 了解更多適合 VS Code 的實用 Java 擴充功能。
© . This site is unofficial and not affiliated with Microsoft.