Files
openidea/docs/zh/reference/data-directories.mdx
T

79 lines
4.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "数据目录与日志"
description: "OpenIDEA 把设置、用户数据、缓存、下载的工具和日志放在哪里,以及如何把可重建的数据移到其他磁盘。"
---
OpenIDEA 的应用 id 是 `ai.l0ng.openidea`,下面所有目录都以它命名。
## 目录位置
| | macOS | Windows | Linux |
| ------------------ | ------------------------------------------------ | -------------------------------------- | -------------------------------------- |
| 配置 | `~/Library/Application Support/ai.l0ng.openidea` | `%APPDATA%\ai.l0ng.openidea` | `~/.config/ai.l0ng.openidea` |
| 用户数据 | `~/Library/Application Support/ai.l0ng.openidea` | `%APPDATA%\ai.l0ng.openidea` | `~/.local/share/ai.l0ng.openidea` |
| 本地数据(可重建) | `~/Library/Application Support/ai.l0ng.openidea` | `%LOCALAPPDATA%\ai.l0ng.openidea` | `~/.local/share/ai.l0ng.openidea` |
| 日志 | `~/Library/Logs/ai.l0ng.openidea` | `%LOCALAPPDATA%\ai.l0ng.openidea\logs` | `~/.local/share/ai.l0ng.openidea/logs` |
在 macOS 和 Linux 上,其中几项是同一个文件夹。**关于 OpenIDEA** 对话框会显示配置目录,并提供 **打开配置目录**。
### 配置
- `settings.toml`:全局设置,参见[设置项](/zh/reference/settings)。
- `recent.json`、`recent-groups.json`:最近打开的项目及其分组。
- `languages/`:你添加或覆盖的语言定义。
### 用户数据
- `plugins/`:已安装的插件。
- `scratches/`:临时文件。
- `history/`:所有项目的本地历史记录。
- `project-trust.json`:受信任的项目和位置。
### 本地数据
这里的内容都可以重新下载或重建,所以在 OpenIDEA 关闭时删除是安全的:
- `tools/`:OpenIDEA 安装的语言服务器、调试适配器、格式化工具和 JDK。
- `language-server-runtimes/`:运行语言服务器所用的运行时。
- `index/`:每个项目的符号索引。
- `cache/`:构建工具(Maven、Gradle)的同步结果和其他缓存。
- `lsp/`:语言服务器的工作区,例如 Java 服务器的导入数据。
- `notebook-runtime/`、`server/`:Notebook 运行时和远程开发服务器的下载。
- `agents/tools/`、`agents/registry.json`:智能体工具和智能体注册表。
想在 IDE 内清理缓存,使用 **文件 › 清除缓存…**。符号索引和语法缓存总会重建;还可以勾选 **清除文件系统缓存和本地历史记录**、**清除语言服务器工作区(Java 导入数据和索引)** 和 **清除构建工具缓存(Maven / Gradle 同步结果)**。选择 **清除并重启** 后,这些缓存会在下次启动、打开任何项目之前删除。
## 项目文件夹
每个项目在根目录的 `.openidea/` 中保存自己的文件:
- `settings.toml`:选中 **此项目** 时保存的设置。
- `run.toml`:作为项目文件保存的运行配置,适合提交到版本库。
- `run.local.toml`:只给自己用的运行配置,OpenIDEA 会把它加入 `.openidea/.gitignore`。
- `workspace.json`:工作区包含的项目。
## 移动本地数据
本地数据可能很大(JDK、语言服务器、索引)。想把它放到其他磁盘,在启动 OpenIDEA 前把 `OPENIDEA_LOCAL_DATA_DIR` 设为一个绝对路径。IDE 随后会使用 `<OPENIDEA_LOCAL_DATA_DIR>/ai.l0ng.openidea`,不存在时自动创建。
在 Windows 上,例如:
```bat
setx OPENIDEA_LOCAL_DATA_DIR "E:\OpenIDEA"
```
在 macOS 和 Linux 上,需要在启动 OpenIDEA 的环境中设置这个变量。
- 如果路径是相对路径或不可写,OpenIDEA 会显示错误并退出,而不会退回默认位置。
- 配置、用户数据和日志的位置不变。即使变量设置有误,日志仍会写入,方便排查原因。
- 已有数据不会自动迁移。可以让 OpenIDEA 重新下载和重建;也可以先退出 OpenIDEA,只移动 `tools/`、`language-server-runtimes/`、`index/`、`cache/`、`lsp/`、`notebook-runtime/`、`server/`、`logs/`、`agents/tools/`、`agents/registry.json` 以及顶层的 `java-usages-*.jar` / `java-usages-*.tmp` 文件,并保持相对路径不变。其他内容请留在原处。
## 日志
OpenIDEA 每天写一个日志文件 `openidea.<日期>.log`,保留最近 7 个。程序崩溃(panic)的信息也会写入当前日志。
- 用 **帮助 › 在访达中显示日志**(macOS)、**帮助 › 在资源管理器中显示日志**(Windows)或 **帮助 › 在文件管理器中显示日志**(Linux)打开日志目录。**关于 OpenIDEA** 对话框中也有同样的链接。
- 需要更详细的日志时,启动 OpenIDEA 前设置环境变量 `RUST_LOG`,例如 `RUST_LOG=debug`。默认级别为 `info`,应用自身输出 debug 级别日志。
[报告问题](/zh/reference/troubleshooting)时请附上日志。