共享索引
减少索引时间的一种可能方法是使用共享索引。与本地构建的常规索引不同,共享索引只生成一次,然后在需要时在另一台计算机上重复使用。
PhpStorm 可以为您的项目代码构建共享索引。每当 PhpStorm 需要重新索引您的应用程序时,它将使用可用的共享索引并为项目的其余部分构建本地索引。通常,这比从头开始为整个应用程序构建本地索引要快。
确保插件已安装
为了能够使用共享项目索引,必须在设置中启用共享项目索引捆绑插件:
在Settings/Preferences对话框 ( Ctrl+Alt+S) 中,选择Plugins。
切换到已安装选项卡,键入
Shared Project Indexes
,并确保选中它旁边的复选框。否则,请选中复选框以启用插件。
应用更改并关闭对话框。如果出现提示,请重新启动 IDE。
当你启动一个项目时,PhpStorm 同时处理本地和共享索引。这可能会增加计算机上的 CPU 使用率。如果您想避免这种情况,请在等待共享索引选项。 。
共享项目索引
为所有项目源和库构建共享项目索引。您可以在一台计算机上生成它们,然后在另一台计算机上应用。这是共享索引相对于普通索引的主要优势。
对于大型项目,使用共享索引是合理的,因为索引可能会花费大量时间,从而给相关团队带来不便。对于较小的项目,我们推荐其他减少索引时间的方法。
在你开始之前
为确保索引兼容性,请在源计算机和目标计算机上使用相同的 IDE 版本。
您可以在源计算机和目标计算机上使用不同的操作系统。
但是,在以前的 PhpStorm 版本中,项目共享索引是特定于操作系统的。使用本页左上角的版本切换器参考与您的 IDE 版本对应的文档。
从命令行共享项目索引
为了共享项目索引,请安装命令行工具并准备 IDE。通过这样做,您可以确保没有缓存或其他内部文件干扰您将从项目中导出的信息。
导出索引和相关元数据后,将它们上传到文件存储。然后,您团队的其他成员可以将他们的 IDE 配置为自动连接到该存储并在需要时下载索引。
准备文件存储
从命令行共享索引要求您有一个文件存储来保存导出的项目索引。
确保您已准备好文件存储,并且您的团队的所有成员都可以访问此存储。
安装cdn-layout-tool
为了能够导出和共享项目索引,请安装cdn-layout-tool - 一个用于处理共享项目索引的 JetBrains 工具:
从Space 存储库下载该工具的最新版本。
下载.zip文件后,将其内容解压缩到有意义的位置。
在.zip文件的内容中,有一个bin目录。在那里,您会找到一个特定于操作系统的启动脚本,稍后您将需要它来生成元数据。
准备 IDE 以共享项目索引
创建以下目录或从现有目录中删除内容:
<temp>/ide-system
<temp>/ide-config
<temp>/ide-log
请注意,在不同的操作系统中,临时目录具有不同的位置。
将<IDE home>/bin/idea.properties文件复制到<temp>目录。有关idea.properties的更多信息,请参阅通用属性。
在<temp>中将idea.properties重命名为ide.properties。
在<temp>/ide.properties文件中更改以下属性:
idea.system.path=<temp>/ide-system
idea.config.path=<temp>/ide-config
idea.log.path=<temp>/ide-log
如果文件中没有这些属性,请在最后添加它们。
设置临时环境变量以指定自定义 IDE 属性文件。为此,请运行以下命令:
设置 PHPSTORM_PROPERTIES=<temp>\ide.properties导出 PHPSTORM_PROPERTIES=<temp>/ide.properties
导出项目索引
确保<temp>/generate-output目录为空。如果没有这样的目录,请不要创建它,因为这将在导出期间自动完成。
使用以下命令行运行 IDE 以将项目索引导出到<temp>/generate-output。
<IDE 命令行启动器> dump-shared-index 项目 --output=<temp>/generate-output --tmp=<temp>/temp --project-dir=<path> --project-id=<project -name> --commit=<Git 头>您可以在bin下的安装目录中找到运行 PhpStorm 的可执行脚本。要将此可执行脚本用作命令行启动器,请按照命令行界面中的说明将其添加到您的
PATH
系统中。- 句法
- phpstorm.bat 转储共享索引项目 --output=<temp>/generate-output --tmp=<temp>/temp --project-dir=<path> --project-id=<project-name> - -commit=<Git 头>
- 选项
--output=<temp>/generate-output
<temp>文件夹中生成的共享索引的输出位置。
--tmp=<temp>/temp
用于 IDE 内部需求的临时目录。
--project-dir=<path>
您要为其导出索引的项目的路径。
--project-id=<id>
项目的名称。
--commit=<vcs revision>
VCS 修订标识符(例如,Git 提交哈希)表示正在为其生成共享索引的项目的状态。
这是在文件存储中布置多个 VCS 修订的共享索引所必需的。
此标识符是可选的。如果没有指定,它将被设置为
-
.--compression=<compression type>
压缩共享索引。可能的选项:
xz
、gzip
和plain
。
默认情况下,PhpStorm 不提供命令行启动器。有关为 PhpStorm 创建启动器脚本的信息,请参阅命令行界面。
- 句法
- phpstorm dump-shared-index 项目 --output=<temp>/generate-output --tmp=<temp>/temp --project-dir=<path> --project-id=<project-name> --commit =<Git 头>
- 选项
--output=<temp>/generate-output
<temp>文件夹中生成的共享索引的输出位置。
--tmp=<temp>/temp
用于 IDE 内部需求的临时目录。
--project-dir=<path>
您要为其导出索引的项目的路径。
--project-id=<id>
项目的名称。
--commit=<vcs revision>
VCS 修订标识符(例如,Git 提交哈希)表示正在为其生成共享索引的项目的状态。
这是在文件存储中布置多个 VCS 修订的共享索引所必需的。
此标识符是可选的。如果没有指定,它将被设置为
-
.--compression=<compression type>
压缩共享索引。可能的选项:
xz
、gzip
和plain
。
您可以在bin下的安装目录中找到运行 PhpStorm 的可执行脚本。要将此可执行脚本用作命令行启动器,请按照命令行界面中的说明将其添加到您的
PATH
系统中。- 句法
- phpstorm.sh dump-shared-index 项目 --output=<temp>/generate-output --tmp=<temp>/temp --project-dir=<project> --project-id=<project-name> - -commit=<Git 头>
- 选项
--output=<temp>/generate-output
<temp>文件夹中生成的共享索引的输出位置。
--tmp=<temp>/temp
用于 IDE 内部需求的临时目录。
--project-dir=<path>
您要为其导出索引的项目的路径。
--project-id=<id>
项目的名称。
--commit=<vcs revision>
VCS 修订标识符(例如,Git 提交哈希)表示正在为其生成共享索引的项目的状态。
这是在文件存储中布置多个 VCS 修订的共享索引所必需的。
此标识符是可选的。如果没有指定,它将被设置为
-
.--compression=<compression type>
压缩共享索引。可能的选项:
xz
、gzip
和plain
。
导出可能需要一些时间。该过程完成后,将以下文件放置到<temp>/generate-output:
共享索引项目-<名称>-<哈希>.ijx.xz
共享索引项目-<名称>-<哈希>.metadata.json
共享索引项目-<名称>-<哈希>.sha256
将生成的文件复制到新文件夹
创建一个新目录<temp>/indexes并在那里下载远程文件存储的所有内容。
您可以在具有<temp>/generate-output子目录的目录中创建新目录。这可以是任何目录,例如~/indexes/project/<project name>/<VCS hash>/share。
将生成的文件(.ijx.xz、.metadata.json、.sha256)从<temp>/generate-output复制到<temp>/indexes的子目录。
这可以是任何文件夹,例如<temp>/indexes/project/<project name>/<VCS hash>/<indexes>。
生成元数据
生成 IDE 用于查找和下载共享索引的辅助文件。为此,请使用以下命令行运行cdn-layout-tool 。
<cdn-layout-tool> --indexes-dir=<dir> --url=<文件存储根URL>- 选项
<cdn-layout-tool>
cdn-layout-tool 启动脚本的路径位于工具目录的bin中。
--indexes-dir=<dir>
包含文件存储中所有可用文件的目录,以及位于该目录下合适位置的新生成的共享索引。
该工具将生成丢失的文件并在必要时替换现有文件。工具运行完成后,必须将该目录下的所有内容上传到文件存储中。这将设置存储的新状态。
--url=<file storage root URL>
文件存储根目录的基本 URL。cdn-layout-tool将替换所有相应.json索引列表中的下载 URL。
- 例子
- /Users/User/Desktop/cdn-layout-tool-0.7.52/bin/cdn-layout-tool --indexes-dir=/var/folders/dr/xxx_x00x0x0_x0xx000xx000000xx/T/indexes --url=https:// my-file-storage.com/intellij-indexes
将索引文件上传到文件存储
将<temp>/indexes中的所有文件按原样上传到文件存储。
如果存储中已经有上传的索引文件,请更新它们。
从文件存储下载索引
项目索引上传到文件存储后,可以下载并应用到另一台计算机上。
在项目目录中,新建文件intellij.yaml并添加以下代码:
sharedIndex: 项目: - url: <feed URL>将<feed URL>替换为您的文件存储的 URL,格式如下:<file storage root URL>/project/<project-id>。
在设置/首选项对话框 ( Ctrl+Alt+S) 中,选择 。
在共享项目索引区域中,选择您希望从存储中下载共享索引的方式。
选择自动下载以允许 PhpStorm 在需要时静默下载索引,或者如果您希望手动确认每次下载,请选择下载前询问。
应用更改并关闭对话框。
项目索引将被下载到IDE系统目录下的index/shared_indexes中。
删除下载的共享索引
如果您不再需要项目索引(例如,如果项目不再处于开发阶段),您可以将它们全部删除。在这种情况下,IDE 将删除项目的常规索引和所有下载的共享索引。
从主菜单中,选择
。在打开的对话框中,选择清除下载的共享索引,然后单击无效并重新启动。