本地 IDEA 卡死了!我把它跑在 Linux 服务器上!

芋道源码 2022-06-24 14:00

引言

2021年底,JetBrains 推出了 Jetbrains Gateway 工具,这是一款远程开发 Client 并且支持了 JetBrains 全家桶,通过 Jetbrains Gateway 你可以在一台性能羸弱的电脑上,流程运行 JetBrains 家的所有开发工具,JetBrains 官方是这样对它进行描述的:所有远程开发环境的单一入口点。虽然目前还在 Beat 版本,但这也是 JetBrains 布局云端开发的重要一环。

其实不光 JetBrains,几乎所有的互联网大厂都在不同领域布局云端,向未来押注。比如游戏领域就已经出现了如:亚马逊Luna、微软Xbox云游戏、Facebook Gaming、START、网易云游戏等游戏平台。

可以预见的是,未来云端可能会是一个大方向,再加上近几年世界各地都饱受疫情困扰,在家办公的需求越来越多,也越来越频繁,而员工居家办公时也会面临种种问题如:

  1. 居家电脑性能羸弱。

  2. 缺乏整套的开发环境与工具链。

  3. 公司财产隐私安全问题。

所以 JetBrains  推出了 Jetbrains Gateway 这种工具,通过它开发人员在居家环境下也可以继续使用和公司的整套环境与工具链,提高效率,所以未来这种开发方式可能也是一个主流。

唠了这么久,我们今天就来先来体验一下 Jetbrains Gateway,感受一下 IDE 大厂 —— JetBrains 对云端开发究竟做到了什么程度。

安装体验

Jetbrains Gateway 可以点击官方主页单独进行下载,而且 Jetbrains Gateway 是一个完全免费的客户端,如果大家需要体验可以直接下载,无需担心许可证问题。

如果你是 IntelliJ IDEA Ultimate、PyCharm Professional、GoLand、PhpStorm、CLion、RubyMine 和 Rider 用户,这些 IDE 已经集成了Jetbrains Gateway,可以直接使用。

由于我本身使用的是 IntelliJ IDEA Ultimate,所以这里我就直接通过 IntelliJ IDEA Ultimate 来进行演示,两者界面是几乎一样相同的:

我们进入到这个页面之后可以看到 Jetbrains Gateway 是通过 SSH 协议进行远程连接,所以我们只需点击`Connect via SSH 进行 SSH 配置即可:

进入到这个页面之后,需要选择一个远程链接地址,由于第一次使用是没有建立连接地址的,所以我们需要点击右边的齿轮图标进行链接新建:

在此页面填入我们的远程服务器地址,服务器需要放开 22 端口,然后输入用户名和密码即可。

如果你目前手头还没有一个远程服务器,可以看看华为云最近推出的 618 大促销活动,性价比最高的服务器一年只要 99 元即可拥有,像 JetBrains 官方推荐的远程服务器配置:2 核心 + 4GB 内存HECS服务器最低只要 185 元一年,性价比可谓是很高了~

填完远程服务器信息后,我们可以先点击 Test Connect,测试连接是否连通,确认连通之后点击 OK 进行下一步:

接着在 Connection 处选择我们刚刚新建的链接,点击右下角的下一步即可:

这一步就到了选择 IDE 的环境,Jetbrains Gateway 会通过 SSH 连接为你的远程服务器安装一个远程版本的 IDE,我们直接选中我们想要的版本然后点击右下角的下载即可。

不过在此之前,我们可以接着选择项目想要放的目录,值得一提的是,无法在这个页面直接新建一个文件夹,只能选择一个文件夹。

所以如果你需要一个新的文件夹存放项目,需要先在服务器上建好,我这里就直接选择服务器自带的 opt 目录,接着点击右下角开始下载了~

如果在这一步你遇到了网络问题,比如下载很久还没下载完,可以直接取消掉点击 Other options 通过本地上传的方式进行上载,下载文件则就是你需要使用的 IDE 发行版的 Linux 版本,可以在对应的 IDE 页面下载。

远程 IDE 自动下载安装之后,它还会在本地帮你下载一个对应的 Client 客户端,接着自动连接就可以进入页面了~

开发初体验

连接上远程服务器的后端之后,和本地开发从观感上看不出来什么差别,不过左上角会多出一个远程连接信息,右下角也会显示网速信息和 Ping 值:

单击左上角的连接信息之后可以发现它是显示了我们远程服务器的一些信息:

甚至还可以设置 JVM 大小:

接下来我再跑一个 SpringBoot 程序测试一下新建项目和 run 是否都正常:

除了下载依赖的时间比较长之外(没有配置阿里云仓库),这一步也没有出现什么特别的问题,如果大家也要体验,强烈建议大家配置上阿里云仓库:

    <repositories>
        <repository>
            <id>nexus-aliyun</id>
            <name>nexus-aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

一开始我没有引入 web 依赖, 后面又单独引入了 web 依赖来测试 Maven 的刷新功能:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

引入 Web 依赖之后,就可以直接把 SpringBoot Run 起来了:

从上图可以看到,由 Jetbrains Gateway 启动的项目和本地项目还是有些不同的,在启动项目之后控制台上出现了两个 port 提示,这是远程端口与本地端口之间的映射,我们可以通过访问远程端口来访问到其项目的真实端口。

后记

今天带大家体验了一把 Jetbrains Gateway 来开发项目,虽然使用的示例比较简单,但是一个完整的从新建到运行的流程还是完全走完了,从中可以感觉到整体没有出现问题,依赖的问题是本地和远程都具有的问题。

当然,我今天只体验了 IDEA 远程服务端,还有一些其他远程服务端没有体验,感兴趣的读者可以自行体验,感受一下。

如果大家体验的过程中没有云服务器的话,正好赶上最近华为云服务器 618 活动,最低一百块钱就可以购得一年服务器使用权,本文中所使用的演示服务器也是华为云耀服务器,我自己感受下来性价比还是比较高的,并且华为云自带 CloudShell 连接工具,在浏览器上就能无缝连接服务器进行操作。

购买链接在这里:

👇也可以点击「阅读原文」购买

推荐阅读