IntelliJ-IDEA远程开发

remote-dev-server

在 JetBrains 的远程开发体系中,remote-dev-server.sh 是运行在远程服务器上的核心脚本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
root@localhost:/# ./remote-dev-server help

Usage: ./remote-dev-server [ij_command_name] [/path/to/project] [arguments...]
Examples:
./remote-dev-server installPlugins [arguments...]
./remote-dev-server status
./remote-dev-server dumpLaunchParameters
./remote-dev-server stop
./remote-dev-server run [arguments...]
./remote-dev-server printEnvVar [arguments...]
./remote-dev-server warm-up /path/to/project [arguments...]
./remote-dev-server cwmHostStatus
./remote-dev-server remoteDevStatus
./remote-dev-server serverMode
./remote-dev-server registerBackendLocationForGateway
./remote-dev-server warmup /path/to/project [arguments...]
./remote-dev-server invalidate-caches
./remote-dev-server help
Environment variables:
REMOTE_DEV_SERVER_TRACE set to any value to get more debug output from the startup script
REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS set to '0' to skip using bundled X11 and other Linux libraries from plugins/remote-dev-server/self-contained. Use everything from the system. by default bundled libraries are used
REMOTE_DEV_TRUST_PROJECTS set to any value to skip project trust warning (will execute build scripts automatically)
REMOTE_DEV_NEW_UI_ENABLED set to '1' to start with forced enabled new UI
REMOTE_DEV_NON_INTERACTIVE set to any value to skip all interactive shell prompts (set automatically if running without TTY)

常用子命令说明(官方)

命令 功能说明
status 查看 remote-dev-server 当前状态
remoteDevStatus 检查是否有远程开发实例正在运行
run 启动远程开发实例(最常用)
stop 停止当前远程开发会话
warm-up /path/to/project 预热索引(构建缓存)
invalidate-caches 清理缓存
serverMode 启动后台模式(长期监听 Gateway 连接)
registerBackendLocationForGateway 为 Gateway 注册本地 IDE 位置
installPlugins 安装插件(离线部署常用)

注册 IDE 后端

registerBackendLocationForGateway 命令用于将远端主机上已经解压/安装的 IDE 后端路径注册到 JetBrains Gateway 的“可用后端/构建”列表,使 Gateway 能发现并显示该已安装的后端 IDE(而不是让 Gateway 从网络下载它)。

1
2
3
4
5
./remote-dev-server.sh registerBackendLocationForGateway
# 手动注册路径:会在此目录下创建符号链接(指向实际的IDE安装位置),以便 Gateway 识别这些用户提供的IDE后端。
ll ~/.cache/JetBrains/RemoteDev/userProvidedDist/
# 自动下载路径:默认情况下,此目录存放 Gateway 自动下载的IDE后端。
ll ~/.cache/JetBrains/RemoteDev/dist

启动 IDE 后端(不常用)

角色:服务器端的启动脚本 / 后端服务(而非本地客户端)。

功能:启动并托管 IDE 后端(文件访问、索引、语言服务、运行/调试后端等)。

连接方式:由 JetBrains Gateway 或受支持的客户端发起连接到该后端。

目的:让本地 IDE 能够远程编辑、运行和调试项目,保持一致的开发体验。

(补充说明:它是服务器端的会话/代理组件,不是本地 IDE 本身。)

1
2
3
4
5
6
mkdir -p /logs/remote-dev-server
tail -f /logs/remote-dev-server/fresh.log

cd /data/local/JetBrains/idea-IU-252.23892.409/bin
# 启动后,会输出三个链接。
nohup ./remote-dev-server.sh run /data/local/workspaces/mars-test/ >/logs/remote-dev-server/fresh.log 2>&1 &

从 IntelliJ IDEA 连接到远程服务器

https://www.jetbrains.com/zh-cn/help/idea/remote-development-starting-page.html

远程开发常见问题解答

https://www.jetbrains.com/help/idea/faq-about-remote-development.html