【问题标题】:Run IntelliJ in client-server mode以客户端-服务器模式运行 IntelliJ
【发布时间】:2014-02-14 19:56:57
【问题描述】:

目前,IntelliJ IDEA 没有“远程开发”功能。

假设我有两台机器:Machine 1(非常好的配置,配备 Intel Xeon 处理器的 64GB 内存)和 Machine 2(配备 8GB RAM 的 Macbook Pro)。

假设我在两台机器上都安装了 IntelliJ IDEA。现在的问题是,IDE 没有客户端-服务器模式。我所拥有的关闭是使用 OpenNX。

我正在寻找的是支持远程开发的插件/功能。我的意思是:在我的 macbook 上,我应该能够将机器 1 添加为“服务器”。一旦完成,我的 macbook 上的 IntelliJ IDEA 将仅充当我 Linux 机器上 IntelliJ IDEA 的客户端。基本上它会复制用户界面。然而,这里的问题是,它不应该通过发送图像来这样做(任何 VNC 或 NX 客户端都会这样做)。相反,由于它是针对特定应用程序的,因此大多数数据只能通过文本数据进行管理。

由于 OpenNX 使用图像,即使进行压缩,它也无法匹配纯文本传输的性能。

基本上我正在寻找一台机器上的 IDEA 作为另一台机器上 IDEA 的客户端(远程 GUI)。

更新

最终的答案是:这是不可能的(截至目前)。虽然我知道其他选择,但这并不是我真正想要的。但是,似乎没有这样的选择。

我想要该选项的主要原因是因为我的台式机(远程 Linux 机器)具有更高的配置(Intel Xeon 2GHz 处理器和 64GB RAM),而我的客户端是配备 Intel Core i7 和 8GB RAM 的 Macbook Pro。 (绝不会少)。但是,由于我的代码库等的大小,IDE 对代码等的索引会减慢它的速度。

客户端和服务器都完全能够自行运行 IDE。但是,由于代码库的大小,最好让 IDE 在服务器上完成工作,而客户端只是它的前端。

VNC、Nomachine - OpenNx 等其他解决方案都使用图像压缩。当您的客户端是 Mac 时,您会遇到键盘映射问题。 IDE 本身中的客户端-服务器模式将改为使用文本压缩,并且速度会快得多。它还可以解决键盘映射问题。

虽然对我来说,这听起来是个好主意,但它可能没有被足够多的人使用,无法成为 IDE 的一项功能。

注意:如果此功能可用,我也愿意考虑将 Eclipse 作为 IDE。任何答案都会受到赞赏。

【问题讨论】:

  • 反对者:请解释一下。
  • 正确,IDEA 没有这样的东西。很难看到必须在产品本身级别完成远程开发的任何 3rd 方集成。也许您需要直接向 JetBrains 提交功能请求?您也没有说明您的机器是在 LAN 上还是在 WAN 上(这对于任何关于客户端/服务器的讨论都很重要,因为带宽和延迟决定了哪些解决方案可能适用)。此外,考虑到 IDE 确实在 RAM 中使用大型工作集运行......“薄 GUI”真的可以在这里工作吗?为什么不直接使用机器 1?!
  • @DavidBullock:我添加了一个更新,希望能进一步解释它。此外,当您谈论图像压缩时,它在 LAN 上滞后,在 WAN 上更糟。文本压缩应该在任一网络上都能正常工作。

标签: intellij-idea


【解决方案1】:

您最好切换到您保持同步的远程代码存储库。虽然在 IDE 插件中执行此操作的概念很有趣,但它存在一些基本缺陷。当机器无法相互通信时会发生什么?您当时无法工作,还是可以离线工作。如果你在两台机器上离线工作,你如何协调更改...

我建议考虑使用“git”。您可以非常轻松地设置远程存储库。如果您对任一机器或其他共享机器具有 ssh 访问权限,则可以在该机器上创建一个远程存储库,您的“客户端”机器可以轻松推送文件/更改。

还有很多其他代码存储库选项,但我发现 git 最容易设置。

【讨论】:

  • 虽然您提供了很好的替代方案,但它仍然不能解决我的问题。因此没有将其标记为已回答。但是,作为赏金到期前的唯一答案,我将其授予您。谢谢你的回答。
  • 如果我想在开发沙箱(例如 Nix shell 或 Docker 容器)中运行我的 IntelliJ 服务器但从主机运行 IntelliJ GUI 客户端,这可能很有用。这实际上正是我使用 Emacs 的方式——我在 Nix shell 中将 emacs 作为守护进程启动,因此 Emacs 可以访问该 shell 的环境,或者当我在 Windows 中开发 Linux/Unix 应用程序时,我将 Emacs 作为 Docker 容器中的守护进程运行这样我就可以在 Windows 主机上运行 GUI Emacs 客户端,但可以从 Emacs 编辑器访问 Linux Docker 环境。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 2012-05-19
  • 1970-01-01
  • 2017-04-30
  • 1970-01-01
  • 2019-01-16
相关资源
最近更新 更多