共有インデックス
共有インデックスを使用すると、IntelliJ IDEA による プロジェクトの分析にかかる時間を短縮できます。 ローカルで作成される通常のインデックスとは異なり、共有インデックスは一度生成され、後で必要なときに別のコンピューターで再利用されます。
IntelliJ IDEA は、プロジェクトのコードと JDK の共有インデックスを構築して使用できます。 IDE がプロジェクトを再度分析する必要がある場合は、利用可能な共有インデックスを使用し、プロジェクトの残りの部分のローカルインデックスを構築します。 通常、これはプロジェクト全体を最初からローカルで分析するよりも速くなります。
プラグインをインストールする
共有プロジェクトインデックスを使用するには、 Shared Indexesプラグインをインストールする必要があります。
Ctrl+Alt+S を押して設定を開き、 を選択します。
Marketplace タブに切り替えて、
Shared Indexesと入力し、 インストール をクリックします。変更を適用して、ダイアログを閉じます。 プロンプトが表示されたら、IDE を再起動します。
JDK用の共有インデックス
IntelliJ IDEA はプロジェクトの分析処理を高速化するため、利用可能な事前にビルドされた共有 JDK インデックスを使用し、残りの JDK はローカルで分析します。 IDE には、最新の 3 つの長期サポート JDK 用の事前に構築された共有インデックスがバンドルされています。
共有プロジェクトインデックス
共有プロジェクトインデックスは、プロジェクトソースとその依存関係用に作成されます。 1 台のコンピューターでインデックスを生成し、それを他のコンピューターに配布することで、各マシンでプロジェクトの分析プロセスを繰り返すことを避けられます。 この方法により、各コンピューターは、コストのかかるプロジェクトの分析操作を個別に実行することなく、事前に計算されたインデックスを活用できます。 これが、通常のインデックスと比較した共有インデックスの主な利点です。
始める前に
プロジェクト共有インデックスを構築するコンピューターと、これらの共有インデックスを使用するコンピューター:
インデックスの互換性を確保するには、同じ IDE バージョンを使用する必要があります。
異なるオペレーティングシステムを使用できます。
ただし、以前の IntelliJ IDEA バージョンでは、共有プロジェクトインデックスは OS 固有でした。 このページの左上隅にあるバージョンスイッチャーを使用して、IDE バージョンに対応するドキュメントを参照してください。
共有プロジェクトインデックスをインフラストラクチャに組み込む前に、コマンドラインツールを実行して、プロジェクトの分析にかかる時間をどれだけ節約できるかを 評価できます。
結果に満足したら、共有インデックスを使い続けることができます。 より複雑なシナリオでは、 IntelliJ 共有インデックスツールの例(英語)リポジトリからサンプルスクリプトをカスタマイズできます。 たとえば、JSON 設定ファイルを使用して、共有インデックスの生成時に xz 圧縮を無効にしたり、gzip 圧縮を使用したりできます。
共有インデックスを使用したプロジェクトの分析時間を評価する
ワークフローで共有プロジェクトインデックスを使用する前に、どれだけ時間を節約できるかを確認できます。 評価中に、ツールは指定したディレクトリにいくつかのファイルを生成します。
コマンドラインツール(英語)の最新バージョンをダウンロードし、アーカイブを解凍します。
コマンドラインで、コマンドラインツールのディレクトリに移動し、次のコマンドを実行してバイナリ ファイルを実行します。
.\bin\ij-shared-indexes-tool-cli.bat boost./bin/ij-shared-indexes-tool-cli boost./bin/ij-shared-indexes-tool-cli boost次のオプションを使用します。
--ij: ローカルにインストールされた IDE への (必須) パス。--project: 共有インデックスを構築するプロジェクトへの (必須) パス。--port: ローカルサーバーを実行するためのポート。 デフォルトのポートは 25561 です。--data-directory: 生成されたインデックスとサーバーデータを保存するディレクトリ。 デフォルトのディレクトリは ./ij-shared-indexes-tool-data です。
例:
.\bin\ij-shared-indexes-tool-cli.bat boost --ij "C:\Users\jetbrains\AppData\Local\Programs\IntelliJ IDEA Ultimate" --project "C:\Users\jetbrains\IdeaProjects\spring-petclinic"./bin/ij-shared-indexes-tool-cli boost --ij "/Users/jetbrains/Applications/IntelliJ IDEA Ultimate.app" --project "/Users/jetbrains/IdeaProjects/spring-petclinic"./bin/ij-shared-indexes-tool-cli boost --ij "/home/jetbrains/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/" --project "/home/jetbrains/IdeaProjects/spring-petclinic"しばらく待ちます。 その後、共有インデックスあり/なしのプロジェクトの分析時間が表示されます。

時間の違いを確認することで、ワークフローで共有プロジェクトインデックスを使用するかどうかを決定できます。
共有プロジェクトインデックスの使用概要
共有プロジェクトインデックスを操作するには、次の操作を行う必要があります。
プロジェクトインデックスの生成
インデックスファイルを生成するには、次の手順に従います。 インデックスが生成されたら、 ファイルをファイルサーバーまたは S3 互換ストレージにアップロードするを実行する必要があります。
コマンドラインツール(英語)の最新バージョンをダウンロードし、アーカイブを解凍します。
コマンドラインで、コマンドラインツールのディレクトリに移動し、次のコマンドを実行してコマンドライン経由でバイナリ ファイルを実行します。
.\bin\ij-shared-indexes-tool-cli.bat indexes./bin/ij-shared-indexes-tool-cli indexes./bin/ij-shared-indexes-tool-cli indexes次のオプションを使用します。
--ij: (必須) ローカルにインストールされた IDE へのパス。--project: 共有インデックスを構築するプロジェクトへの (必須) パス。--base-url: (必須) インデックスサーバーの URL。 共有インデックスがホストされる完全な URL を定義するために使用されるベース URL。--data-directory: 生成されたインデックスとサーバーデータを保存するディレクトリ。 デフォルトのディレクトリは ./ij-shared-indexes-tool-data です。 このディレクトリから、base-urlパラメーターで指定されたサーバーにファイルをアップロードする必要があります。
本番の例: 本番のユースケースで共有インデックスを生成する場合は、ファイルサーバーまたは S3 互換ストレージにアップロードするインデックスを作成できます。 例:
.\bin\ij-shared-indexes-tool-cli.bat indexes --ij "C:\Users\jetbrains\AppData\Local\Programs\IntelliJ IDEA Ultimate" --project "C:\Users\jetbrains\IdeaProjects\spring-petclinic" --base-url "http://your-aws-bucket.s3-website.eu-north-1.amazonaws.com"./bin/ij-shared-indexes-tool-cli indexes --ij "/Users/jetbrains/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-1/232.8453.116/IntelliJ IDEA 2023.2 EAP.app" --project "/Users/jetbrains/IdeaProjects/spring-petclinic" --base-url "http://your-aws-bucket.s3-website.eu-north-1.amazonaws.com"./bin/ij-shared-indexes-tool-cli indexes --ij "/home/jetbrains/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/" --project "/home/jetbrains/IdeaProjects/spring-petclinic" --base-url "http://your-aws-bucket.s3-website.eu-north-1.amazonaws.com"テストの例: 共有インデックスをローカルでテストする場合は、ローカルサーバーにアップロードできるインデックスを作成できます。 例:
.\bin\ij-shared-indexes-tool-cli.bat indexes --ij "C:\Users\jetbrains\AppData\Local\Programs\IntelliJ IDEA Ultimate" --project "/Users/jetbrains/IdeaProjects/spring_example_project" --base-url "http://127.0.0.1:8080" --data-directory "C:\Users\jetbrains\ij-shared-indexes-tool-data"./bin/ij-shared-indexes-tool-cli indexes --ij "/Users/jetbrains/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-1/232.8453.116/IntelliJ IDEA 2023.2 EAP.app" --project "/Users/jetbrains/IdeaProjects/spring_example_project" --base-url "http://127.0.0.1:8080"./bin/ij-shared-indexes-tool-cli indexes --ij "/home/jetbrains/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/" --project "/Users/jetbrains/IdeaProjects/spring_example_project" --base-url "http://127.0.0.1:8080" --data-directory "/home/jetbrains/ij-shared-indexes-tool-data"プロジェクトインデックスが生成されると、 プロジェクトで共有インデックスを構成するために必要な情報を含むメッセージが表示されます。


インデックスを生成すると、 indexes コマンドの実行時に 指定したディレクトリに、 server と temp の 2 つのフォルダーが表示されます。 インデックスファイルは、 server ディレクトリ内に保存されます。
ストレージにファイルをアップロード
インデックスを生成すると、 indexes コマンドの実行時に 指定したディレクトリに、 server と temp の 2 つのフォルダーが表示されます。 インデックスファイルは、 server ディレクトリ内に保存されます。
共有インデックスをリモートストレージにアップロードする
server ディレクトリから data},{ および プロジェクト フォルダーをファイルサーバーまたは S3 互換ストレージにアップロードします。 ストレージの場所のベース URL は、インデックスの生成時に
base-urlパラメーターを使用して定義された URL と同じである必要があります。
ローカルでテストする際の共有インデックスの公開
共有インデックスをテストする場合、 server コマンドを使用して、生成されたファイルでサーバーを起動できます。
コマンドラインで、コマンドラインツールのディレクトリに移動し、次のコマンドを実行してバイナリ ファイルを実行します。
.\bin\ij-shared-indexes-tool-cli.bat server./bin/ij-shared-indexes-tool-cli server./bin/ij-shared-indexes-tool-cli server次のオプションを使用します。
--port: ローカルサーバーを実行するためのポート。--server-directory: サーバーデータのディレクトリ。 デフォルトのディレクトリは ./ij-shared-indexes-tool-data/server です。
例:
.\bin\ij-shared-indexes-tool-cli.bat server --port 8080 --server-directory "C:\Users\jetbrains\ij-shared-indexes-tool-data\server"./bin/ij-shared-indexes-tool-cli server --port 8080 --server-directory "/Users/jetbrains/ij-shared-indexes-tool-data/server"./bin/ij-shared-indexes-tool-cli server --port 8080 --server-directory "/home/jetbrains/ij-shared-indexes-tool-data/server"

共有インデックスへのアクセスの設定
プロジェクトインデックスを ファイルストレージにアップロードすると、別のコンピューターにダウンロードして適用できるようになります。
プロジェクトディレクトリで、新しいファイル intellij.yaml を作成し、ターミナルからの情報を新しいファイルにコピーします。

プロジェクトがまだ分析されていない場合、または システムキャッシュをクリアした場合、IDE は共有インデックスをダウンロードして使用します。
デフォルト設定では、IDE は共有インデックスを自動的にダウンロードします。 これを変更して、 ダウンロードごとに手動で確認することもできます。
プロジェクトインデックスは、IDE の システムディレクトリの index/shared_indexes にダウンロードされます。
インデックスのダウンロード中は、ステータスバーに進行状況が表示されます。

すべての準備が完了すると、 通知 ツールウィンドウに対応する通知が表示されます。

インデックスのダウンロード方法の変更
デフォルト構成では、IDE は共有インデックスを自動的にダウンロードします。 すべてのダウンロードを手動で確認できます。
intellij.yaml ファイルから
consentsセクションを削除し、プロジェクトを再起動します。設定 ダイアログ(Ctrl+Alt+S )で、 を選択し、 プロジェクト共有インデックス エリアで ダウンロード前に確認 を選択します。

変更を適用して、ダイアログを閉じます。
ダウンロード済みの共有インデックスを無効化
無効化後、IntelliJ IDEA は新しい共有インデックスが利用可能な場合はダウンロードして使用します。},{ それ以外の場合は、 プロジェクト分析中に新しいインデックスがローカルで構築されます。
メインメニューから、 を選択します。
ダウンロード済みの共有インデックスを無効化 を選択し、 破棄して再起動 をクリックします。
共有インデックスCLIコマンドリファレンス
- ブースト
プロジェクト共有インデックスによるプロジェクト分析の高速化を測定します。オプション: オプション:
--project: (必須) プロジェクトへのパス。--ij: (必須) ローカルにインストールされた IDE へのパス。--port: ローカルサーバーを実行するためのポート。 デフォルトのポートは 25561 です。--data-directory: 生成とサーバーデータに使用するディレクトリ。
- indexes
プロジェクト共有インデックスを生成し、アップロードできるように準備します。 オプション:
--project: (必須) プロジェクトへのパス。--ij: (必須) ローカルにインストールされた IDE へのパス。--base-url: (必須) インデックスサーバーの URL。--data-directory: 生成とサーバーデータに使用するディレクトリ。
- server
ローカルインデックスでサーバーを起動します。 オプション:
--port: ローカルサーバーを実行するためのポート。 デフォルトのポートは 25561 です。--server-directory: サーバーデータのディレクトリ。 デフォルトのディレクトリは ./ij-shared-indexes-tool-data/server です。
- version
共有インデックスのバージョン情報を表示します。 オプション:
--ij: (必須) ローカルにインストールされた IDE へのパス。
コマンドラインから共有インデックスを引き続き使用できます。 より複雑なシナリオでは、 IntelliJ 共有インデックスツールの例(英語)リポジトリからサンプルスクリプトをカスタマイズできます。