跳转到主要内容
openidea-server 是不带界面的 OpenIDEA 后端。在远程窗口中,它运行在项目所在的地方(SSH 主机、WSL 发行版或开发容器), 承担桌面端在本地时要做的工作:文件系统、索引、语言服务器、终端、运行、调试、构建工具和 Git。桌面窗口只负责显示界面,并把命令发给它。 你不需要手动启动它。打开远程项目时(SSH、容器),桌面端会按需在主机上安装服务端, 通过 SSH 连接(或 wsl.exe / docker exec)以 openidea-server --stdio 启动,并经由标准输入输出与它通信。一个服务端进程只服务一个桌面窗口, 窗口断开后即退出。

支持的主机

每个版本都会发布以下平台的服务端构建: 桌面端用 uname -sm 识别主机平台。其他平台(包括 Windows 主机)不受支持。开发容器必须是 Linux。

安装过程

每次连接时,桌面端都会检查主机上是否已有与自身版本相同的服务端。没有的话:
  1. 先在本机查找该平台的服务端二进制(见离线安装)。
  2. 找不到就从 GitHub Releases 下载当前版本的 openidea-server-<os>-<arch>.gz, 校验 SHA-256 后缓存到本机本地数据目录的 server/<version>/<os>-<arch>/ 下。
  3. 把二进制上传到主机,并删除同一版本的旧构建。
桌面端和服务端始终是同一版本。升级 OpenIDEA 后,下一次连接会在旧版本旁边安装新的服务端。

主机上的文件

想释放空间,可以删除 ~/.openidea/server/ 下的旧版本文件夹。删除 ~/.openidea/data/ 后,OpenIDEA 会在需要时重新安装工具。

环境

SSH 执行的命令默认只有很精简的环境,所以服务端启动时会读取你的登录 shell 环境。shell 配置文件中的 PATH 等变量因此会作用于终端、运行和语言服务器。 修改之后,在远程窗口中使用文件 › 重新加载环境即可,无需重新连接。

离线安装

本机访问不了 GitHub 时,可以自己提供服务端二进制。桌面端按以下顺序查找:
  1. 环境变量 OPENIDEA_SERVER_BINARY 指向的文件(需在启动 OpenIDEA 时已设置)。
  2. 本机本地数据目录中的 server/<os>-<arch>/openidea-server,例如 server/linux-x86_64/openidea-server。
  3. 主机与本机平台相同时,OpenIDEA 可执行文件旁边的 openidea-server。
从与你的 OpenIDEA 版本对应的 Release 下载 openidea-server-<os>-<arch>.gz,用 gunzip 解压后放到上述任一位置。版本必须与桌面端一致: 协议版本不同的服务端会被拒绝。 如果主机上已经装有当前版本的某个构建,在无法下载时桌面端会直接使用它。

从源码构建

在主机平台上构建(或交叉编译到该平台),然后把 OPENIDEA_SERVER_BINARY 指向 target/release/openidea-server(交叉编译时为对应 target 的目录)。

命令行

这些参数是给桌面端用的,不过 --version 可以用来检查已安装的构建。

插件

窗口连接时,桌面端的代码插件及其贡献的语言会发送到服务端,插件在服务端运行,紧挨着项目。