前言

自从我用了正版的IntelliJ IDEA后,基本上都是与时俱进,出一个新版本就立马更新,这也能能让我体验到最新最快的功能。

最近在闲逛Jetbrains的官网时,看到了最新的2021.3EAP版本的放出。立马下了试试。

而令我感到兴奋的是,2021.3版本竟然增加了云端开发的一系列功能。

所谓云端开发,就是指本地运行着一个轻客户端。所有的代码存储,代码编译,代码运行都是在远端。本地只是作一个展示和编辑作用。

这个时代很多东西都云端化了,有云电脑,云手机,云游戏。我一直都期待有个云IDE,虽然我知道vscode开源了并且有相应的云平台。但是我说IntelliJ IDEA才是Java开发IDE的天花板,这个应该没人反驳吧。

而这个EAP版本,就直接明示了以后IDEA既能作为本地IDE,又能作为轻客户端连上云端,利用云端强大的处理力,加速你的代码编译,启动速度。

而这个云端,随便指定一台服务器,就可以自动化初始化好,极其方便。

而此篇文章,就来一探究竟:这个idea云端是如何玩的。

安装好2021.3 EAP版本后,在欢迎界面就多出一个Remote Development选项:

Connect via SSH,就可以看到只要通过SSH方式就可以连上一个远端服务器作为计算资源。和所有的SSH一样,填入你相应必要的验证方式,这里我是采用RSA私钥的验证方式:

点击Check Connection and Continue之后,后续所有的动作,都由IDEA自动完成。包括在你的服务器上装上远端的服务进程,初始化等事情。这个过程只能等一会。

这个过程我大概等了5分钟左右。看到成功连接上远程服务器之后,点开Project directory就可以看到服务器上的文件目录了,选择一个作为你的工作目录。

这时应该服务器上的远端进行已经开启了,我登上了服务器,查找了下idea的进程,可以发现远端服务器上启动着4个进程。

连上上之后进入主界面,我发现基本和本地的没有任何区别。只是在右下角多了一个即时的上行和下行的速度指标。和一个ping值。玩过手游的童鞋应该都知道,ping值是一个什么概念。ping值越低,就代表延时越低。下图可以看到,我本地和服务器的延迟是22ms,对这个值有点概念的童鞋,应该知道这个ping值基本上是感受不到延迟的。

接下来我们就感受下远端编译。

我创建了一个springboot的web项目,当然创建的代码全部在远端上面,本地只不过作为编辑界面。

运行mvn clean package命令,要注意的是此时并不是在本地执行maven命令,已经是在远端了,前提是远端服务器已经装了maven,并配置好了系统path。

整个过程和本地并无太大差别,运行结果耗时如下,这还是包括从中央仓库上下载springboot相关依赖+编译打包的时间。甚至于我都觉得比本地要来的快速。

顺便说下,这里测试时,远端服务器的配置是8核64G内存。

接下来我在demo工程上加了一个controller。直接运行这个项目。

运行很快速。配置的端口号在8989。

如果往常我们要访问controller的话,就一定会访问127.0.0.1:8989了,但是这个运行也是在远端运行的。

我查看了远端的进程和端口号,确实服务器上开启了一个线程,端口号是8989

接下来用服务器的公网地址进行访问,也是毫无问题。

甚至于debug也和本地的一模一样,毫无违和感

这基本上都可以不用在测试环境上部署了,本地直接起,相当于部署测试服务器了。用的还不是本地资源。

别的服务调用过来,本地直接可以debug了。还不用开remote debug。

当然以上纯属个人说笑,测试环境部署流程还是需要的。这里只是为了说明,这种如同本地模式的debug的确比基于配置-Xrunjdwp的remote debug好了不止一点点。

总结

整个体验下来,可以这么说,操作模式完全和本地一模一样,但是计算和存储资源却是在远端。而且我在体验的过程中,基本上没有让我感觉到卡顿的地方,如同本地般的丝滑流畅。

有些童鞋本地配置不高的,平时开几个IDEA窗口就开始卡的,完全就可以拿公司高性能的服务器作为远端。利用服务器的高性能作为计算资源。本地开个十几个轻客户端应该也不会有卡顿。不用换电脑,立马解决idea卡顿问题的神操作了。

因为这个版本只是一个EAP版本,官方文档也说了,可能在使用时中会有不稳定的异常出现。所以2021.3的正式版本,我个人还是很期待的。

可能在以后,无论是手机,还是pad,还是轻量级配置的电脑中。只要我们打开idea的轻客户端,连上强大的云服务器,无论是编译,启动,加载,都是异常的快。不会再出现,编译花个20分钟,启动花个10分钟这样的事了。

我是铂赛东,是一个开源作者和内容博主,热爱生活和分享。如果你对我的内容感兴趣,请转发,点赞,然后关注我。

IntelliJ IDEA竟然出了可以在云端编码的功能?的更多相关文章

  1. Intellij里检出svn报错找不到svn解决办法

    Intellij里检出svn报错找不到,解决办法: 1. 安装svn客户端: 2. 去掉settings->version control->subversion里的use command ...

  2. 采用霍夫曼编码(Huffman)画出字符串各字符编码的过程并求出各字符编码 --多媒体技术与应用

    题目:有一个字符串:cabcedeacacdeddaaaba,问题: (1)采用霍夫曼编码画出编码的过程,并写出各字符的编码 (2)根据求得的编码,求得各编码需要的总位数 (3)求出整个字符串总编码长 ...

  3. IntelliJ IDEA设置项目和properties文件编码为UTF-8

    https://blog.csdn.net/u012430402/article/de IntelliJ IDEA设置项目和properties文件编码为UTF-8   tails/79633245

  4. jQuery、layer实现弹出层的打开、关闭功能实例详解

    本文主要介绍了jQuery.layer实现弹出层的打开.关闭功能,需要的朋友可以参考下,希望能帮助到大家. 打开弹出层: 在list页面带入layer.js 在list页面点击时,弹出form弹出层, ...

  5. IntelliJ下使用Code/Live Template加快编码速度:程序员的工作不是写程序,而是写程序解决问题

    程序员的工作不是写程序,而是写程序解决问题. --- 某不知名程序员 我们每天都在写代码,有些代码有结构性的相似,但不是所有的代码都可以被抽成方法.在这种情况下,我们应该考虑使用template的方式 ...

  6. 设置Intellij IDEA 提示出未保存的*星号

    IDEA实乃是java开发的神器,然而从eclipse或者MyEclipse转过来的开发每写完一行代码总是习惯的按下ctrl+s,然而IDEA代码编辑器的上方并没有提示未保存的*星号,提示星星,所以觉 ...

  7. IntelliJ IDEA 去除IDE自动的参数名 提示功能

  8. Flex里监听mouseDownOutside事件解决弹出窗口点击空白关闭功能

    其实当用户在使用 PopUpManager 打开的某个组件外部单击时,会从该组件分派一个mouseDownOutside事件 监听该事件就能实现点击空白处关闭窗口的功能 this.addEventLi ...

  9. EditPlus里面自带有更改文件编码的功能

随机推荐

  1. Python3入门系列之-----内置的文件操作模块OS

    前言 在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这个时候就需要用到os模块. 使用前 ...

  2. pycharm中安装扩展包

    在使用Pycharm编写代码时,如果遇到了所需要的扩展包没有的情况时,可以使用以下方法来添加自己需要的扩展包. 1.点击File->settings 2.选择Project Interprete ...

  3. Python代码阅读(第10篇):随机打乱列表元素

    本篇阅读的代码实现了随机打乱列表元素的功能,将原有列表乱序排列,并返回一个新的列表(不改变原有列表的顺序). 本篇阅读的代码片段来自于30-seconds-of-python. shuffle fro ...

  4. 左手IRR,右手NPV,掌握发家致富道路密码

    智能手机的普及让世界成为了我们指尖下的方寸之地. 在各种信息爆炸出现的同时,五花八门的理财信息与我们的生活越贴越近.投资不再仅仅是企业行为,对于个人而言,也是很值得关注的内容. 但是落脚到很小的例子之 ...

  5. 每日总结:Number&Math类(2021.10.4)

    Java语言为每一个内置数据类型提供了对应的包装类. 所有的包装类(Integer.Long.Byte.Double.Float.Short)都是抽象类Number的子类 其中Integer 对应的基 ...

  6. 题解「2017 山东一轮集训 Day1 / SDWC2018 Day1」Set

    题目传送门 题目大意 给出一个长度为 \(n\) 的数组,选出一些数异或之和为 \(s1\),其余数异或之和为 \(s2\),求 \(s1+s2\) 最大时 \(s1\) 的最小值. 思路 你发现如果 ...

  7. fastjson反序列化-JdbcRowSetImpl利用链

    fastjson反序列化-JdbcRowSetImpl利用链 JdbcRowSetImpl利用链 fastjson反序列化JdbcRowSetImpl - Afant1 - 博客园 (cnblogs. ...

  8. 请问:c语言中d=1/3*3.0;与d=1.0/3*3;d=?有什么区别

    请问:c语言中d=1/33.0;与d=1.0/33;d=?有什么区别 d=1/33.0; 这时d=0,d=(1/3)3.0,这里1是整形,1/3也是整形,等于0,所以03.0=0 d=1.0/33; ...

  9. nmap常用命令汇总

    nmap常用命令 选项 解释 使用举例 举例说明 Nmap主机发现 -sP Ping扫描     -P0 无Ping扫描     -PS TCP SYN Ping扫描     -PA TCP ACK ...

  10. XSS_Labs靶场通关

    XSS-labs靶场(1-20) 开始通关!   0x01 (直接漏洞注入) 反射型xss注入 1.遇到?name=text,尝试参数注入 注入语句: <script>alert('xss ...