IntelliJ IDEA 2025.1 Help

共享索引

减少索引时间的其中一种可能方法是使用共享索引。 与本地生成的常规索引不同,共享索引只需生成一次,随后在其他计算机上需要时重复使用。

IntelliJ IDEA 可以为您的项目代码和您的 JDK 构建并使用共享索引。 每当 IntelliJ IDEA 需要重新索引您的应用程序时,它将使用可用的 shared indexes 并为项目的其余部分构建本地 indexes。 通常,这比从头开始为整个应用程序构建本地索引要快。

JDK 的共享索引

IntelliJ IDEA 将在本地为您的 JDK 构建索引,并使用任何预构建的 JDK 共享索引来加快索引过程。 该 IDE 随附了最新的三个长期支持 JDK 的预构建共享索引。

共享项目索引

共享项目索引是为项目源代码及其依赖项生成的。 通过在单台计算机上生成索引并将其分发到其他计算机,您可以避免在每台机器上重复索引过程。 这样,每台计算机都可以受益于预先计算的索引,而不必单独执行昂贵的索引操作。 这就是共享索引相对于普通索引的主要优势。

使用共享索引对于大型项目来说是合理的,因为索引可能会花费大量时间,给相关团队带来不便。 对于小型项目,我们建议 其他减少索引时间的方法

确保插件已安装

若要使用共享项目索引,必须在设置中启用 Shared Project Indexes捆绑插件:

  1. Ctrl+Alt+S 打开设置,然后选择 插件

  2. 切换到 已安装 选项卡,输入 Shared Project Indexes ,并确保选中其旁边的复选框。

    否则,请选中复选框以启用插件。

  3. 应用更改并关闭对话框。 如果出现提示,请重启 IDE。

安装插件

要使用共享项目索引,请安装 Shared Project Indexes 插件:

  1. Ctrl+Alt+S 打开设置,然后选择 插件

  2. 切换到 Marketplace 选项卡,并在搜索字段中输入 Shared Project Indexes

  3. 一旦在可用插件列表中找到该插件,点击其旁边的 安装

  4. 应用更改并关闭对话框。 如果出现提示,请重启 IDE。

开始之前

构建项目共享索引的计算机和任何使用项目共享索引的计算机:

  • 应使用相同的 IDE 版本以确保索引兼容性。

  • 可以有不同的操作系统。

    不过,在之前的 IntelliJ IDEA 版本中,共享项目索引是特定于操作系统的。 请使用本页面左上角的版本切换器查阅与您的 IDE 版本相对应的文档。

在将共享项目索引整合到您的基础设施之前,您可以通过运行命令行工具来 评估它们在索引上可以节省多少时间。

如果您对结果满意,您可以继续使用 shared indexes。 在更复杂的场景中,您可以自定义 IntelliJ Shared Indexes Tool Example 仓库中的示例脚本。

评估使用共享索引的索引时间

在将共享项目索引用于您的工作流程之前,您可以看看它们能够为您节省多少时间。 在评估期间,该工具将在您指定的目录中生成一些文件。

  1. 请下载最新版本的 命令行工具并解压归档。

  2. 在命令行中,导航到命令行工具的目录,并通过运行以下命令执行二进制文件:

    .\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"
  3. 等待一段时间。 之后,您将看到有共享索引和没有共享索引的索引时间。

    预估索引时间

通过查看时间差,您可以决定是否要在您的工作流程中使用 shared project indexes。

共享项目索引使用概述

为了能够使用共享项目索引,您必须:

生成项目索引

使用以下步骤生成索引文件。 在生成索引之后,您需要 将文件上传到文件服务器或兼容 S3 的存储

  1. 请下载最新版本的 命令行工具并解压归档。

  2. 在命令行中,导航到命令行工具的目录,并通过运行以下命令在命令行中执行二进制文件:

    .\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"
  3. 一旦项目索引生成,您将看到包含 在项目中配置共享索引所需信息的消息。

    共享索引已生成
    共享索引已生成

在执行 索引 命令时,生成索引后,您指定的 目录中会出现两个文件夹: 服务器 temp 。 索引文件存储在 服务器 目录中。

上传文件到存储空间

在您 生成索引后,执行 索引 命令时,在 您指定的目录中会出现两个文件夹: 服务器 temp 。 索引文件存储在 服务器 目录中。

将共享索引上传到远程存储

  • data 项目 文件夹从 服务器 目录上传到您的文件服务器或 S3-compatible 存储。 存储位置应与使用 base-url参数定义的 URL 基址相同。

本地测试时发布共享索引

在测试共享索引时,您可以使用 服务器 命令来启动生成文件上的服务器。

  • 在命令行中,导航到命令行工具的目录,并通过运行以下命令执行二进制文件:

    .\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 并将终端中的信息复制到新文件中,例如:

    共享索引的 YAML 文件

    如果项目尚未建立索引或者您已 清除系统缓存 ,IDE 将下载共享索引并使用它们。

    在默认配置中,IDE 将自动下载共享索引。 您可以选择更改此设定,并 手动确认每次下载

项目索引将下载到 index/shared_indexes 的 IDE 系统目录中。

正在下载索引时,进度会显示在状态栏中。

正在下载共享索引

一切准备就绪后,您会在 通知 工具窗口中看到相应的通知。

共享索引已下载

更改索引的下载方式

在默认配置中,IDE 将自动下载共享索引。 您可以手动确认每次下载。

  1. intellij.yaml 文件中删除 consents 部分,并重新启动您的项目。

  2. 设置 对话框(Ctrl+Alt+S )中,选择 工具 | 共享索引 并在 项目共享索引 区域中选择 下载前询问

    配置下载共享索引的选项
  3. 应用更改并关闭对话框。

共享索引 CLI 命令参考

提升

测量使用项目共享索引的索引速度。 选项:

  • --project :(必需)项目路径。

  • --ij :(必填) 本地安装的 IDE 的路径。

  • --port :运行本地服务器的端口。 默认端口是 25561。

  • --data-directory :用于生成和服务器数据的目录。

索引

生成项目共享索引并使其准备好上传。 选项:

  • --project :(必需)项目路径。

  • --ij :(必填) 本地安装的 IDE 的路径。

  • --base-url :(必填)索引服务器 URL。

  • --data-directory :用于生成和服务器数据的目录。

服务器

启动本地索引上的服务器。 选项:

  • --port ‍:用于运行本地服务器的端口。 默认端口是 25561。

  • --server-directory :服务器数据目录。 默认目录是 ./ij-shared-indexes-tool-data/server

version

显示共享索引版本信息。 选项:

您可以继续在命令行中使用 shared indexes。 在更复杂的场景中,您可以自定义 IntelliJ Shared Indexes Tool Example 仓库中的示例脚本。

最后修改日期: 2025年 4月 24日