使用轻量级客户端进行远程开发概述
远程开发允许您使用远程机器、开发容器、WSL 或各种提供商来检出和加载您的项目,进行索引、分析、构建、运行、调试和测试代码。
通过远程开发,您可以执行以下操作:
在与本地运行的操作系统不同的操作系统上编辑、构建或调试应用程序。
使用比本地机器更大或更强大的硬件进行开发。
使用笔记本电脑作为瘦客户端,无需在本地机器上托管源代码。
随时随地工作,同时敏感信息仅托管在公司的服务器上。
连接
远程主机是托管源代码并运行前端 IDE 的物理或虚拟机器。 您连接到后端,该后端透明地提供对所有 IDE 功能的完全访问。
可以通过多种场景建立与远程机器的连接:
SSH 连接
从本地机器通过 SSH 连接到远程服务器,或反之亦然(从服务器上已安装的 IDE 连接到本地机器)。
您可以使用以下几种方法:
JetBrains Toolbox 应用 :支持在 Linux、macOS 和 Windows 上的连接。 有关更多信息,请参阅 Toolbox App 页面。
CLion :从 CLion 欢迎界面连接到您的远程项目。 更多信息请参阅 通过轻客户端进行远程操作。
JetBrains Gateway :您可以使用 JetBrains Gateway 通过 SSH 连接到 Linux 机器。 您还可以连接到各种开发环境。
有关更多信息,请参见 使用轻量客户端开始远程开发。
Dev Container 连接
开发容器连接:在远程机器上启动 Dev Container,用于远程文件系统中包含 JSON 文件的项目或从 Git 仓库克隆的项目。
有关此工作流程的描述,请参阅 为远程项目启动 Dev Container。
WSL 连接
WSL 连接:配置您的 IDE 后端直接在 WSL2 中启动。 JetBrains Gateway 为此类场景提供了原生的 WSL 支持。
有关更多信息,请参阅 连接到在 WSL2 上运行的项目。
开发环境
通过 JetBrains Gateway 还可以连接到运行在 JetBrains CodeCanvas、Gitpod、Google Cloud、GitHub Codespaces、Amazon CodeCatalyst 和 Coder 上的各种开发环境。
有关如何连接到每个环境的更多信息,请参阅 使用轻量客户端开始远程开发。
可扩展性
IDE 后端
后端可以通过以下方式扩展各种 CLion 插件:
通过将必需插件解压到 相应的目录中
通过运行以下代码(需要网络连接到 JetBrains Marketplace):
remote-dev-server installPlugins <PLUGIN_ID1> <PLUGIN_ID2> ...请查看以下示例:
remote-dev-server installPlugins IdeaVIM
如果插件提供了一组新的检查和功能,所有这些都会显示在 JetBrains Client 上。
如需了解详情,请参阅 安装插件。
JetBrains Gateway SDK
JetBrains Gateway 可以像任何其他基于 IntelliJ 平台的产品一样进行扩展。
您可以使用以下几种方法:
使用 https://github.com/JetBrains/gradle-intellij-plugin/ 设置一个新项目(
gradle-intellij-plugin应 >= 1.1.4)请使用以下设置针对 JetBrains Gateway 构建您的插件:
intellij { version.set("213.2667-CUSTOM-SNAPSHOT") type.set("GW") instrumentCode.set(false) }您可以在 https://www.jetbrains.com.cn/intellij-repository/snapshots 查看可用版本(参见 group com.jetbrains.gateway)
编排
除了基本的 SSH 和 Code With Me 连接外,供应商可以为自己的编排服务定制 JetBrains Gateway。 这可以在 JetBrains 与供应商之间的自定义协议中完成。
JetBrains Gateway 基于 IntelliJ 平台,拥有用于与 JetBrains Client 连接和交互的 API。
请查看以下示例:
一个大型组织希望编写自己的编排工具。 由于安全原因,基本的 SSH 流程是不够的。 该组织编写了一个内部插件并将其交付给开发者。 开发者可以在 JetBrains Gateway 或 CLion 上的笔记本电脑中安装此插件。
这是对 API 的一个非常简要的介绍(它们尚未最终确定,实际上这也不是完整作用域,但它们解释了整体思路)。
JetBrains Client
JetBrains Client 并非为连接部分的扩展性而设计。 不过,您可以开发并安装各种 CLion 插件,这些插件可以修改 UI、键盘快捷键、主题和其他涉及 IDE UI 交互的部分,但不会影响其功能。
已知限制
在此工作流程中,远程主机目前仍仅支持 Linux。 请确保 Linux 机器上有兼容的 SSH 服务器。 Linux 机器应具有任何较新的 Linux 发行版,例如 Ubuntu 16.04+ 或 RHEL/Centos 7+。
需要注意以下几个 CLion 特定的限制:
CMake 项目是唯一支持的; Makefile 和 Compilation database 项目即将推出。
进程提升和 以 root 权限运行/调试 不起作用(CWM-4091)。
CLion 特定的调试器功能(内存视图、 反汇编 )以及 代码覆盖率 不会显示在客户端机器上(CWM-507, CWM-921)。
Google Sanitizers 和 Valgrind Memcheck 可用,但 Profiler 在此远程模式下尚未启动(CWM-4284)。
支持 C/C++、Objective-C/C++、Python、JavaScript 和 HTML 语言。 Rust 尚不可用。