文章目录
最近开始公众号文章也开始同步更新了,对Java、大数据、人工智能、开发运维相关技术分享,文章对您有用的话,辛苦您也关注下公众号,感谢!
IntelliJ IDEA远程开发:释放本地设备,打破资源与环境的限制
IDEA的远程开发 (Remote Development) 是指在不依赖于本地计算资源的情况下,通过连接远程服务器或虚拟机来进行代码编写、调试和构建的开发模式。这种方式主要通过 JetBrains Gateway 和 JetBrains Projector 提供支持,可以在本地 IDE 界面与远程环境紧密协作,帮助开发者解决资源限制和环境一致性等问题。
应用场景
- 高资源需求的项目:对于大型项目或需要大量资源的开发任务,使用本地计算可能导致性能瓶颈。通过远程开发,开发者可以将计算密集型任务交给性能强大的远程服务器。
- 跨平台开发:有些项目需要在特定的操作系统上运行,比如 Linux 系统上的项目。使用 IDEA 的远程开发功能,开发者可以在本地 Windows 或 macOS 设备上编写代码,但在远程的 Linux 环境中运行和调试程序。
- 分布式团队:开发团队分布在不同地区,利用远程开发功能可以让开发者在统一的开发环境中协作,减少由于环境不一致带来的问题。
- 灵活的工作场所:无论在公司、家里还是其他地方,开发者只需要稳定的网络连接,就可以在远程的强大服务器上开展工作,适应不同的工作场景。
远程开发优势
- 资源节省:本地设备不再需要处理繁重的编译、测试和调试任务,从而减少了对本地硬件资源的消耗。你可以用轻量级的设备连接到远程服务器,而在远程服务器上运行大型或复杂项目。
- 一致的开发环境:通过在远程服务器上设置标准化的开发环境,可以避免开发者在不同操作系统或配置上的环境差异。这对于调试依赖特定环境的项目尤其有帮助。
- 提高开发效率:远程开发将本地开发中的计算压力转移到远程的高性能服务器上,通常可以大幅减少项目构建和测试的时间,提升整体开发速度。
- 跨平台开发便利性:如果需要在不同操作系统之间进行开发,远程开发可以让你轻松在本地环境下使用远程系统的资源,无需在本地切换操作系统或安装虚拟机。
- 增强的协作能力:通过统一的远程环境,团队成员可以更加容易地共享环境设置、代码库和调试信息,减少了版本和环境不一致带来的麻烦。
如何实现远程开发
进入远程开发
Remote Development
选择远程开发方式
可以通过两种方式实现远程开发:
- 通过 SSH
- 通过 Dev Containers
这里我们选择
Dev Container
的方式介绍,因为
SSH
方式比较简单,会了
Dev Containers
也基本就会了
SSH
,SSH方式基本就是通过SSH连接后,基础环境我们在远程服务器配置好就可以用了。
配置SSH代理转发
默认情况下,本地电脑上已经配置了 SSH 密钥以便访问 Git 项目,但容器中没有这些权限。因此,我们需要配置 SSH 代理转发,将本地权限传递给远程容器。
首先,通过以下命令检查密钥是否对
ssh-agent
可见:
$ ssh-add -L# 示例输出
ssh-ed25519 AAAAC3XXXXXD3DEoFT2Qr3fWu9MY
如果显示没有身份信息,则可以通过以下命令添加密钥:
ssh-add ~/.ssh/id_ed25519
验证配置的是否代理转发是否生效
可以通过 SSH 连接远程服务器并执行以下命令进行验证:
# 连接目标服务器
$ ssh [email protected]
# 验证密钥转发是否成功
$ ssh-T [email protected]
# 若显示以下内容,则表示成功:
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
更多有关 SSH 代理转发的配置信息,可以参考:https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/using-ssh-agent-forwarding#testing-ssh-agent-forwarding
通过
Dev Container
创建开发容器
注意:远程机器需要预装 Docker 并已运行。
- 创建开发容器:
- 新增 Docker 配置,选择通过 SSH 连接远程服务器:
- 选择项目配置:
说明:
- Automatic:自动从项目中获取配置
- Specify Path:手动指定配置文件路径
配置完成后,点击右下角的
Build Container and Continue
。
- 配置远程
Dev Container
的基础环境,选择合适的开发环境,如 Java 8 + Maven,点击OK
。
可能存在的问题:如果出现无法下载的问题,可以将无法下载的镜像通过阿里云手动下载镜像,具体步骤如下:
- 通过GitHub将镜像同步到阿里云。
- 手动下载镜像
docker pull registry.cn-hangzhou.aliyuncs.com/jast-docker/git:v2.34.2
将镜像
tag
修改为
alpine/git:v2.34.2
docker tag registry.cn-hangzhou.aliyuncs.com/jast-docker/git:v2.34.2 alpine/git:v2.34.2
重试,等待所有环境拉取完成。
首次完成后,需安装EAP:
安装完成后会自动打开
Intellij IDEA EAP
,这个是用于连接远程项目的客户端。
我们可以看到这个页面和
Intellij IDEA
几乎一样,我们就可以在这里进行开发代码、调试代码、提交代码到Git等等一系列操作,它与我们平时开发一样了。此外,还可以查看远程机器的资源使用情况。
最后推荐一个官方提供的体验Demo:https://github.com/IdeaUJetBrains/idea-demo-devcontainers
版权归原作者 jast_zsh 所有, 如有侵权,请联系我们删除。