openidea-server 是不带界面的 OpenIDEA 后端。在远程窗口中,它运行在项目所在的地方(SSH 主机、WSL 发行版或开发容器),
承担桌面端在本地时要做的工作:文件系统、索引、语言服务器、终端、运行、调试、构建工具和 Git。桌面窗口只负责显示界面,并把命令发给它。
你不需要手动启动它。打开远程项目时(SSH、容器),桌面端会按需在主机上安装服务端,
通过 SSH 连接(或 wsl.exe / docker exec)以 openidea-server --stdio 启动,并经由标准输入输出与它通信。一个服务端进程只服务一个桌面窗口,
窗口断开后即退出。
支持的主机
每个版本都会发布以下平台的服务端构建:
桌面端用
uname -sm 识别主机平台。其他平台(包括 Windows 主机)不受支持。开发容器必须是 Linux。
安装过程
每次连接时,桌面端都会检查主机上是否已有与自身版本相同的服务端。没有的话:- 先在本机查找该平台的服务端二进制(见离线安装)。
- 找不到就从 GitHub Releases 下载当前版本的
openidea-server-<os>-<arch>.gz, 校验 SHA-256 后缓存到本机本地数据目录的server/<version>/<os>-<arch>/下。 - 把二进制上传到主机,并删除同一版本的旧构建。
主机上的文件
想释放空间,可以删除
~/.openidea/server/ 下的旧版本文件夹。删除 ~/.openidea/data/ 后,OpenIDEA 会在需要时重新安装工具。
环境
SSH 执行的命令默认只有很精简的环境,所以服务端启动时会读取你的登录 shell 环境。shell 配置文件中的PATH 等变量因此会作用于终端、运行和语言服务器。
修改之后,在远程窗口中使用文件 › 重新加载环境即可,无需重新连接。
离线安装
本机访问不了 GitHub 时,可以自己提供服务端二进制。桌面端按以下顺序查找:- 环境变量
OPENIDEA_SERVER_BINARY指向的文件(需在启动 OpenIDEA 时已设置)。 - 本机本地数据目录中的
server/<os>-<arch>/openidea-server,例如server/linux-x86_64/openidea-server。 - 主机与本机平台相同时,OpenIDEA 可执行文件旁边的
openidea-server。
openidea-server-<os>-<arch>.gz,用 gunzip 解压后放到上述任一位置。版本必须与桌面端一致:
协议版本不同的服务端会被拒绝。
如果主机上已经装有当前版本的某个构建,在无法下载时桌面端会直接使用它。
从源码构建
OPENIDEA_SERVER_BINARY 指向 target/release/openidea-server(交叉编译时为对应 target 的目录)。
命令行
这些参数是给桌面端用的,不过--version 可以用来检查已安装的构建。