一种减少索引时间的方式是使用共享索引。不像本地构建的常规索引,共享索引一次创建后,后期可以在其他电脑上使用。
其他索引方式,请参考前文(1)
IDEA可以创建并使用共享索引为你的项目代码和你的JDK。无论何时IDEA想要重新索引你的应用程序,它将使用有效的共享索引并对你项目的其余部分创建本地索引。通常,这比对整个项目创建本地索引要快。
Shared indexes for JDKs
IDEA 会对JDK创建本地索引,也会使用有效的JDK共享索引,来加快整个索引过程。IDE内置了3个最新版JDK的预先创建的共享索引。
Shared project indexes
即对项目源码和项目依赖的索引。在一个机器上生成,可以用于其他计算机。这是共享索引相比传统索引的主要优点。
共享索引对大型项目有意义,因为构建时间长。对小项目,建议选择其他索引方式前文(1)
插件名:Shared Project Indexes bundled 查看插件是否启用:
打开设置,选择Plugins。切换到已安装标签页面,输入“shared project indexes”,确认该插件存在,并且勾选了。apply更改并重启IDE。
开始前检查,创建的机器,以及其他使用索引的机器应该:
1. 相同IDE版本
2. 操作系统可以不同。但是,以前发布的IDEA版本支持的共享索引是特定OS相关的。在本页面左上角切换到你的IDE版本查看文档。
在合并共享索引到你的项目前,你可以计算节约的时间,通过命令行工具。如果对计算结果满意,可以使用索引。对于更复杂的场景,你可以修改 IntelliJ Shared Indexes Tool Example 仓库 ( 外网网址 )的示例脚本。
计算工具运行时,会生成一些文件在你指定的目录:
- 下载最新版本的命令行工具,并解压 我上传的工具压缩包
- 进入工具目录,执行:
./bin/ij-shared-indexes-tool-cli boost ( uos / macos )
.\bin\ij-shared-indexes-tool-cli.bat boost(windows )
一些选项的含义:
- - ij (必选) 本地IDE路径
- - project (必选)要创建共享索引的项目路径
- - port 本地运行服务程序的端口,默认25561
- - data-directory 指定目录用于存放索引和服务程序数据,默认是./ij-shared-indexes-tool-data.
例如(uos ):
./bin/ij-shared-indexes-tool-cli boost --ij "/home/jetbrains/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/" --project "/home/jetbrains/IdeaProjects/spring-petclinic"
SourceURL:file:///home/uvw/Documents/Shared indexes.docx
- 等待一下,将看到2个时间,使用共享索引和不使用。
共享索引3步走
1. 生成索引
2. 上传到存储(文件服务器,或S3存储)
3. 配置访问
生成索引:
1. 下载最新版的命令行工具,解压。
2. 导航到命令目录,执行:
./bin/ij-shared-indexes-tool-cli indexes( uos )
选项含义:
- -ij 本地安装IDE路径
- - project 项目路径
- - base-url 完整的索引服务器地址,用于发布共享索引
- - data-directory 存储索引和服务程序数据。默认同前述。你应该从这个目录上传到base-url指定的服务器。
例如,如果你是为产品创建索引,并上传到文件服务器或S3存储:
./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 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. 一旦索引创建了,你将看到输出信息,指导你复制到项目里的配置文件。
命令完毕,你指定的目录出现2个文件夹server和temp 索引存放在server文件夹。
上传
发布索引
本地测试,可以使用前述命令,带server参数。
./bin/ij-shared-indexes-tool-cli server
例如
./bin/ij-shared-indexes-tool-cli server --port 8080 --server-directory "/home/jetbrains/ij-shared-indexes-tool-data/server"
配置访问
在项目目录,创建文件intellij.yaml ,粘贴前述命令返回的提示信息。
如果项目还没索引,或者你 cleared the system cache (索引系列文章3还没写),IDE就会下载共享索引。默认配置是自动下载,你可以改成手工下载:
* 删除 consents部分,重启项目
* 进入设置 | Tools | Shared Indexes
* 在 Project Shared Indexes区域选择“先问后下”
索引将下载到 IDE的index/shared_indexes目录。下载过程和结束后,IDE都会提示。
Shared indexes CLI command文档
boost 计算使用共享索引的时间。参数 - -project - - ij - - port - - data-directory
indexes 生成索引 - - project - - ij - - base-url - - data-directory
server 启动一个本地文件服务 。参数:- - port - - server-directory
version 显示版本。参数 - - ij