VS CodeでのJavaプロジェクトの管理
Java用プロジェクトマネージャー拡張機能は、Javaプロジェクトとその依存関係を管理するのに役立ちます。また、新しいJavaプロジェクト、パッケージ、クラスを作成するのにも役立ちます。Visual Studio Codeで完全なJava言語サポートを得るには、Project Manager for Java拡張機能を含むExtension Pack for Javaをインストールできます。
Extension Pack for Javaをインストールする
拡張パックの使用開始方法の詳細については、「Javaの使用開始」チュートリアルを参照してください。
プロジェクトビュー
Java Projectsビューは、Javaプロジェクトとその依存関係を表示し、プロジェクト管理タスクのエントリポイントを提供します。
デフォルトでは、Java Projectsビューはエクスプローラービューの下に表示されます。表示されない場合は、EXPLORERタイトルバーの
...
ボタンをクリックし、Java Projectsを選択してみてください。
ナビゲーションバーのオーバーフローボタンには、さらに多くのオプションがあります。たとえば、階層ビューとフラットビューを切り替えることができます。
エクスプローラーのノードの横に、いくつかのアクションに便利なショートカットを提供するボタンがあります。
各ノードのコンテキストメニューにも多くの便利な機能があり、エクスプローラーでノードを右クリックすると表示できます。
新しいJavaプロジェクトを作成する
ナビゲーションバーの+ボタンをクリックするか、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P))でコマンド: Java: Create Java Project... を実行して、新しいJavaプロジェクトを作成できます。プロジェクト作成中、VS Codeは、プロジェクトタイプに応じて必要な拡張機能がまだインストールされていない場合に、そのインストールを支援します。
Javaプロジェクトをインポートする
既存のJavaプロジェクトとモジュールを、ファイル > フォルダーを開く... を通して直接ワークスペースにインポートできます (開いたフォルダーに、例えばpom.xml
やbuild.gradle
などのビルドツールスクリプトが含まれていることを確認してください)。VS Code for Javaはプロジェクトを検出し、自動的にインポートします。
プロジェクトに新しいモジュールを追加した場合、Java: Import Java projects in workspaceコマンドをトリガーしてワークスペースにインポートできます。このコマンドは、VS Codeウィンドウをリロードすることなく、新しいプロジェクトをワークスペースにインポートするのに役立ちます。
JARにエクスポート
プロジェクトビューから、またはJava: Export Jar...コマンドを実行して、ビルドをJARにエクスポートできます。
プロジェクトのランタイム構成
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
を追加することで、そのうちの1つをデフォルトに設定できます。デフォルトのJDKは、管理されていないフォルダー (ビルドツールなし) に使用されます。
プロジェクトに使用されているJDKを確認するには、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) でJava: Configure Java Runtimeコマンドをトリガーします。このコマンドは、プロジェクトのランタイム情報を表示するビューを開きます。
MavenおよびGradleプロジェクトのJDKを変更する
MavenまたはGradleプロジェクトのJDKバージョンを変更したい場合は、ビルドスクリプト (pom.xml
またはbuild.gradle
) で更新する必要があります。をクリックすると、これらの変更方法を確認できます。をクリックすると、プロジェクトのビルドスクリプトファイルに移動します。
管理されていないフォルダーのJDKを変更する
管理されていないフォルダー (ビルドツールなし) のJDKを変更するには、ボタンをクリックします。すべてのJDKが一覧表示され、管理されていないフォルダー用に1つを選択できます。
JDKをダウンロード
新しいJDKをダウンロードしたい場合は、download
リンクをクリックするか、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) でコマンドJava: Install New JDKをトリガーします。新しいビューが開き、JDKのダウンロードを案内します。
注: Javaプレビュー機能を有効にするには、「VS Codeを新しいJavaバージョンで使用する方法」を参照してください。
管理されていないフォルダーのクラスパスを構成する
Project Management for Java拡張機能は、管理されていないフォルダーのクラスパスを構成するためのユーザーインターフェースを提供します。クラスパスは、クラスパス構成ページで手動で設定できます。コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) からJava: Configure Classpathコマンドを実行して開くことができます。
まれに、言語サーバーが依存関係を再構築できるように、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) からJava: Clean Java Language Server Workspaceコマンドを実行して、Javaワークスペースをクリーンアップする必要がある場合があります。
依存関係管理
Mavenの依存関係を追加する
Mavenプロジェクトの場合、プロジェクトビューのMaven Dependenciesノードの横にある+アイコンをクリックして依存関係を追加できます。
管理されていないフォルダーの依存関係を管理する
プロジェクトがビルドツールのない管理されていないフォルダーの場合、Referenced Librariesノードまたはその下の項目にある+アイコンまたは-アイコンをクリックして依存関係を管理できます。または、jarライブラリをReferenced Libraries
ノードに直接ドラッグすることもできます。
クラスパス構成ページで依存関係を管理することもできます。参照: 管理されていないフォルダーのクラスパスを構成する
バックグラウンドでは、settings.json
にjava.project.referencedLibraries
という設定があります。この設定をカスタマイズする方法の詳細は以下の通りです。
ライブラリを含める
参照するライブラリは、一連のグロブパターンを使用して記述されます。
例
"java.project.referencedLibraries": [
"library/**/*.jar",
"/home/username/lib/foo.jar"
]
上記の設定により、ワークスペースのライブラリフォルダー内のすべての.jar
ファイルと、指定された絶対パスからのfoo.jar
がプロジェクトの外部依存関係に追加されます。
参照されたライブラリはVS Codeによって監視され、これらの依存ファイルに変更があった場合はプロジェクトが更新されます。
デフォルトでは、VS Codeはワークスペースのlib
ディレクトリにあるすべてのJARファイルをグロブパターンlib/**/*.jar
を使用して参照します。
一部のライブラリを除外する
プロジェクトから一部のライブラリを除外したい場合は、java.project.referencedLibraries
を展開してinclude/exclude
フィールドを使用し、exclude
グロブパターンを追加できます。
"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にそのソースとしてアタッチされます。
軽量モード
VS Code for Javaは、軽量モードと標準モードの2つのモードをサポートしています。軽量モードでは、言語サーバーによってソースファイルとJDKのみが解決されます。標準モードでは、インポートされた依存関係が解決され、プロジェクトが言語サーバーによってビルドされます。軽量モードは、ソースコードの読み取り、ソースコードとJDK間の移動、アウトラインとJavadocの表示、構文エラーの検出と修正など、ソースファイルを扱うためのクイックスタートで軽量な環境が必要な場合に最適です。また、ソースファイルとJDKの範囲内でコード補完がサポートされます。
軽量モードでは、インポートされた依存関係が解決されず、プロジェクトもビルドされないため、実行、デバッグ、リファクタリング、リンティング、セマンティックエラーの検出はサポートされません。これらの機能を利用するには、ワークスペースを軽量モードから標準モードに切り替える必要があります。
以下のオプションを使用してjava.server.launchMode
を構成することで、起動するモードを制御できます。
Hybrid
(デフォルト) - まず、ワークスペースは軽量モードで開かれます。ワークスペースに未解決のJavaプロジェクトが含まれている場合、標準モードに切り替えるかどうかを尋ねられます。後でを選択した場合、軽量モードのままになります。ステータスバーの言語ステータス項目をクリックして、手動で標準モードに切り替えることができます。Standard
- ワークスペースは標準モードで開かれます。LightWeight
- ワークスペースは軽量モードで開かれます。ステータスバーの言語ステータス項目をクリックして、手動で標準モードに切り替えることができます。
言語ステータス項目は、現在のワークスペースがどのモードにあるかを異なるアイコンで示します。
- - ワークスペースが軽量モードで開かれました。
- - ワークスペースが標準モードで開かれている途中です。
- - ワークスペースが標準モードで開かれました。
言語ステータス項目をクリックすると、標準モードに切り替わります。
ビルドステータス
Visual Studio CodeでJavaソースコードを編集すると、Java言語サーバーは必要な言語機能を提供するためにワークスペースをビルドします。ステータスバーの言語ステータス項目をクリックすると、詳細なビルドタスクステータスを確認し、バックグラウンドで何が起こっているかを見ることができます。また、言語サーバーがJavaプロジェクトを開いていることを示す通知が表示されたときに詳細を確認リンクを選択して、ビルドタスクステータスを確認することもできます。
追加リソース
Javaの様々なビルドシステムをサポートするVisual Studio Code拡張機能がいくつかあります。以下は、いくつかの人気のあるビルドシステム用の拡張機能です。
- Maven for Java
- Gradle for Java
- Bazel for Java (BazelはJava統合なしで
BUILD
ファイル用です)
上記の機能の使用中に問題が発生した場合は、イシューを提出してお問い合わせください。
次のステップ
さらに詳しく知るには