您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

时间:2022-05-13 11:21:52  来源:掘金  作者:秃头Java人

本篇概览

  • IDEA的远程开发功能,可以将本地的编译、构建、调试、运行等工作都放在远程服务器上执行,而本地仅运行客户端软件进行常规的开发操作即可,官方给出的逻辑图如下,可见通过本地的IDE和服务器上的IDE backend将本地电脑和服务器打通,实现了远程开发的效果
IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 实际体验中,感觉就像平常的IDEA本地开发,但其实繁重的任务都交给了服务器去做,这对性能较差的本地电脑来说,以前跑不动的应用,如今凭借强大的服务器也能丝滑运行了
  • 今天就来一起实战IDEA远程开发,让破旧的本地电脑也能流畅的编译运行JAVA应用
  • 文章由以下几段组成:
  1. 环境信息一览
  2. 准备服务器
  3. IDEA远程连接
  4. 重新设置工程的根目录
  5. 端口转发
  6. 其他要注意的地方

环境信息一览

  • 以下是我这边本次实战的环境信息,可作为参考
  1. IDEA:2021.3.2 (Ultimate Edition)
  2. 本地电脑操作系统:macOS Montery(12.3)
  3. 服务器:Ubuntu 20.04 LTS(4核8G)

准备服务器

  • 一台linux服务器是远程开发必须的,自己内网的、租用云服务厂商的都可以
  • IDEA会自动在服务器上安装所需的服务,咱们无需提前准备什么,唯一要求是可以通过SSH登录此服务器
  • 欣宸的服务器是腾讯云轻应用服务器,在官网租用的,如下图,4核8G,一年两百多,感觉挺划算

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 接下来要在服务器上把开发用的代码准备好,我这里是将自己Github仓库下载到服务器上,代码存放在这里:/home/ubuntu/jetbrAIns-workspace
ubuntu@VM-12-12-ubuntu:~/jetbrains-workspace$ git clone https://github.com/zq2599/blog_demos.git
Cloning into 'blog_demos'...
remote: Enumerating objects: 14559, done.
remote: Counting objects: 100% (1097/1097), done.
remote: Compressing objects: 100% (350/350), done.
remote: Total 14559 (delta 846), reused 818 (delta 703), pack-reused 13462
Receiving objects: 100% (14559/14559), 110.29 MiB | 3.05 MiB/s, done.
Resolving deltas: 100% (4714/4714), done.
复制代码

IDEA创建远程连接

  • 服务器端准备完毕后,可以开始本地电脑的远程连接操作了
  • 打开IDEA,如下图,选择New Connection

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

 

  • 输入IP地址,账号密码

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 按要求输入密码,远程连接成功后,指定工作目录(Project directory),我指定的是代码仓库所在目录,然后点击右下角的Download and Start IDE

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 远程服务器开始下载后端应用,这是用于支持远程开发的服务

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 等待下载完成后,就会多出一个名为JetBrains Client的应用,并且已经打开,如下图红框,这就是将来做远程开发的本地工具了

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • JetBrains Client界面如下,看起来像是IDEA,可以看到刚才在服务器下载的整个仓库的内容,和在本地打开没什么区别,Terminal打开的也是服务器目录,修改代码时改动的也是服务器上的代码

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 还剩一个问题:如上图所示,此仓库中并不只有一个java项目,而是有几十个文件夹,每个文件夹下都是个独立的工程(有的是gradle,有的是maven),如果我现在只想修改其中的一个(例如上图红框中的quarkus-tutorials),并编译运行它,应该怎么操作?接下来就解决此问题(这是IDEA的操作,并非远程连接的问题)

重新设置工程的根目录

  • 接下来要解决的问题是:IDE远程打开的文件夹里有多个工程,我只想打开其中的一个maven工程进行开发和调试
  • 顶部菜单选择"File" -> "Project structure..."

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 点击下图红框位置的X符号,会删除当前内容根目录(Content Root)

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 点击下图红框中的加号,重新添加内容根目录(Content Root)

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 选择用于开发的文件夹即可

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 选择完毕后,终于见到熟悉的目录结构

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 您可能会觉着这一段的操作是多此一举:只要在远程连接的时候设置工作目录是quarkus-tutorials就行了,没必要这么麻烦,您说的没错,在远程连接的时候确实可以直接指定目录,但是如果此刻使用的是Jetbrains的space,那里无法直接指定目录,只能直接打开

作为maven工程运行

  • 关于服务器的JDK,如果装了,请按照下图位置去选择,如果没有安装,按照下图进行远程下载即可

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 此刻,IDE并未识别到这是个maven工程,需要打开pom.xml,然后在右键菜单中选择Add as Maven Project,如下图红框

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 等待项目加载和更新完成后(生成索引时间较长,我这边半小时),终于见到了熟悉的maven项目页面,可见和用IDEA时候并无区别
  • 试试maven的单元测试,如下图,和使用IDEA并无区别,顺利执行

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

端口转发

  • 开发web应用时,启动应用后,访问远程IP地址和端口可能比较麻烦(有的服务器涉及到安全问题不轻易开端口),此时JetBrains Client提供的端口转发功能非常实用
  • 端口转发配置方式如下图,这样我访问本机的8080端口时,请求就会转到服务器的8080端口

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 启动应用试试,我的应用是个普通web应用,启动后监听8080端口,然而我并没有给服务器开通8080端口到外网,如下图,从本地可以访问成功

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

其他要注意的地方

  • 退出的时候,会提示是否关闭远程服务,请自行选择,我选择的是Close and Keep Running

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 如果嫌每次输入密码麻烦,就在idea中保存起来

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 下次再打开时就会出现之前的记录,点击即可进入

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • Git提交功能也可以正常使用:本地的提交其实是将服务器上的代码提交到Github

 

IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”

 

  • 最后别忘了去插件管理页面安装常用插件
  • 至此,IDEA远程开发的实际体验已经完成,希望本文能给您一些参考,助您搭建一个稳定高性能的开发环境

原文链接:
https://juejin.cn/post/7089614698529685517



Tags:IntelliJ IDEA   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
八个IntelliJ IDEA中常用的快捷键
1 使用驼峰命名法快速打开类这是一个简单而强大的功能,只输入驼峰命名法中的首字母缩写就可以查找/打开所需的类。比如说,类名是TopLevelDestination,只需输入TLD就能立即打开...【详细内容】
2023-11-23  Search: IntelliJ IDEA  点击:(162)  评论:(0)  加入收藏
IntelliJ IDEA插件开发入门实战
IntelliJ IDEA是一款强大的Java开发工具,提供了丰富的API,为你钟爱的IDE增添了无限可能。与此同时,庞大而活跃的IntelliJ IDEA社区可以帮助解决问题并提升技能。无论你在插件开...【详细内容】
2023-11-14  Search: IntelliJ IDEA  点击:(231)  评论:(0)  加入收藏
IntelliJ IDEA 一些不为人知的功能
今天聊的这些功能可能社区版没有,就需要下载专业版,如何使用专业版,请看这里:kdocs.cn/l/cdW01CjMHzjw我相信现在Java开发者应该80%都在使用IDEA作为开发工具吧,今天我们将深入了...【详细内容】
2023-11-09  Search: IntelliJ IDEA  点击:(245)  评论:(0)  加入收藏
Eclipse、IntelliJ IDEA、PyCharm三种IDE的区别
Eclipse、IntelliJ IDEA和PyCharm是三种流行的集成开发环境(IDE),每个都有其特性和优点。1. Eclipse:Eclipse是一款开源的Java IDE,由Eclipse基金会开发。它具有许多功能,包括代码...【详细内容】
2023-11-07  Search: IntelliJ IDEA  点击:(148)  评论:(0)  加入收藏
用IntelliJ IDEA进行前端开发
在这个数字化的时代,网络开发工具层出不穷,各自都宣称可以让开发过程更加流畅和高效。在这个竞争激烈的领域中,有一个工具引人注目,那就是IntelliJ IDEA,一个由JetBrains开发的强...【详细内容】
2023-10-16  Search: IntelliJ IDEA  点击:(343)  评论:(0)  加入收藏
掌握IntelliJ IDEA 中的“下架”与“上架”功能,编程效率翻倍
你是否经常需要在处理一个任务时,突然要转而处理另一个任务?在这种情况下,你也许不想提交尚未完成的更改,但又不希望丢失已经做出的修改。为了解决这个问题,有一个非常方便的功能...【详细内容】
2023-10-11  Search: IntelliJ IDEA  点击:(244)  评论:(0)  加入收藏
十个超级高效的IntelliJ IDEA插件
1. Code With Me【下载地址】https://plugins.jetbrains.com/plugin/14896-code-with-meCode With Me是一款支持协作开发和配对编程的插件。此插件支持多个开发人员同时在同...【详细内容】
2023-10-08  Search: IntelliJ IDEA  点击:(331)  评论:(0)  加入收藏
7个应该牢记于心的IntelliJ IDEA快捷键
Jetbrains编辑器家族在市场上凭借其卓越的功能和用户友好的界面获得了大量用户的支持。这个家族基于Jetbrains IntelliJ平台,提供了多款IDE可供选择,包括Intellij IDEA、Andro...【详细内容】
2023-07-25  Search: IntelliJ IDEA  点击:(101)  评论:(0)  加入收藏
五个IntelliJ IDEA插件,高效编写代码
人工智能AI是当前广受认可的未来趋势和发展方向。虽然有些人担心AI可能会取代所有的工作,但实际上只会取代那些重复性高、产出低的工作。因此,我们应该学会更加聪明地工作,而不...【详细内容】
2023-07-06  Search: IntelliJ IDEA  点击:(288)  评论:(0)  加入收藏
IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”
本篇概览 IDEA的远程开发功能,可以将本地的编译、构建、调试、运行等工作都放在远程服务器上执行,而本地仅运行客户端软件进行常规的开发操作即可,官方给出的逻辑图如下,可见通...【详细内容】
2022-05-13  Search: IntelliJ IDEA  点击:(481)  评论:(0)  加入收藏
▌简易百科推荐
Meta如何将缓存一致性提高到99.99999999%
介绍缓存是一种强大的技术,广泛应用于计算机系统的各个方面,从硬件缓存到操作系统、网络浏览器,尤其是后端开发。对于Meta这样的公司来说,缓存尤为重要,因为它有助于减少延迟、扩...【详细内容】
2024-04-15    dbaplus社群  Tags:Meta   点击:(3)  评论:(0)  加入收藏
SELECT COUNT(*) 会造成全表扫描?回去等通知吧
前言SELECT COUNT(*)会不会导致全表扫描引起慢查询呢?SELECT COUNT(*) FROM SomeTable网上有一种说法,针对无 where_clause 的 COUNT(*),MySQL 是有优化的,优化器会选择成本最小...【详细内容】
2024-04-11  dbaplus社群    Tags:SELECT   点击:(3)  评论:(0)  加入收藏
10年架构师感悟:从问题出发,而非技术
这些感悟并非来自于具体的技术实现,而是关于我在架构设计和实施过程中所体会到的一些软性经验和领悟。我希望通过这些分享,能够激发大家对于架构设计和技术实践的思考,帮助大家...【详细内容】
2024-04-11  dbaplus社群    Tags:架构师   点击:(2)  评论:(0)  加入收藏
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(5)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(9)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(16)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(14)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(9)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(14)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(10)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条