體驗IntelliJ IDEA的遠程開發(fā)(Remote Development)
作者:程序員欣宸
今天就來一起實戰(zhàn)IDEA遠程開發(fā),讓破舊的本地電腦也能流暢的編譯運行Java應(yīng)用。
本篇概覽
- IDEA的遠程開發(fā)功能,可以將本地的編譯、構(gòu)建、調(diào)試、運行等工作都放在遠程服務(wù)器上執(zhí)行,而本地僅運行客戶端軟件進行常規(guī)的開發(fā)操作即可,官方給出的邏輯圖如下,可見通過本地的IDE和服務(wù)器上的IDE backend將本地電腦和服務(wù)器打通,實現(xiàn)了遠程開發(fā)的效果。
- 實際體驗中,感覺就像平常的IDEA本地開發(fā),但其實繁重的任務(wù)都交給了服務(wù)器去做,這對性能較差的本地電腦來說,以前跑不動的應(yīng)用,如今憑借強大的服務(wù)器也能絲滑運行了。
- 今天就來一起實戰(zhàn)IDEA遠程開發(fā),讓破舊的本地電腦也能流暢的編譯運行Java應(yīng)用。
- 文章由以下幾段組成。
- 環(huán)境信息一覽
- 準備服務(wù)器
- IDEA遠程連接
- 重新設(shè)置工程的根目錄
- 端口轉(zhuǎn)發(fā)
- 其他要注意的地方
環(huán)境信息一覽
- 以下是我這邊本次實戰(zhàn)的環(huán)境信息,可作為參考。
- IDEA:2021.3.2 (Ultimate Edition)
- 本地電腦操作系統(tǒng):macOS Montery(12.3)
- 服務(wù)器:Ubuntu 20.04 LTS(4核8G
準備服務(wù)器
- 一臺Linux服務(wù)器是遠程開發(fā)必須的,自己內(nèi)網(wǎng)的、租用云服務(wù)廠商的都可以。
- IDEA會自動在服務(wù)器上安裝所需的服務(wù),咱們無需提前準備什么,唯一要求是可以通過SSH登錄此服務(wù)器。
- 欣宸的服務(wù)器是騰訊云輕應(yīng)用服務(wù)器,在官網(wǎng)租用的,如下圖,4核8G,一年兩百多,感覺挺劃算。
- 接下來要在服務(wù)器上把開發(fā)用的代碼準備好,我這里是將自己github倉庫下載到服務(wù)器上,代碼存放在這里:/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創(chuàng)建遠程連接
- 服務(wù)器端準備完畢后,可以開始本地電腦的遠程連接操作了。
- 打開IDEA,如下圖,選擇New Connection。
- 輸入IP地址,賬號密碼。
- 按要求輸入密碼,遠程連接成功后,指定工作目錄(Project directory),我指定的是代碼倉庫所在目錄,然后點擊右下角的Download and Start IDE。
- 遠程服務(wù)器開始下載后端應(yīng)用,這是用于支持遠程開發(fā)的服務(wù)。
- 等待下載完成后,就會多出一個名為JetBrains Client的應(yīng)用,并且已經(jīng)打開,如下圖紅框,這就是將來做遠程開發(fā)的本地工具了。
- JetBrains Client界面如下,看起來像是IDEA,可以看到剛才在服務(wù)器下載的整個倉庫的內(nèi)容,和在本地打開沒什么區(qū)別,Terminal打開的也是服務(wù)器目錄,修改代碼時改動的也是服務(wù)器上的代碼。
- 還剩一個問題:如上圖所示,此倉庫中并不只有一個java項目,而是有幾十個文件夾,每個文件夾下都是個獨立的工程(有的是gradle,有的是maven),如果我現(xiàn)在只想修改其中的一個(例如上圖紅框中的quarkus-tutorials),并編譯運行它,應(yīng)該怎么操作?接下來就解決此問題(這是IDEA的操作,并非遠程連接的問題)。
重新設(shè)置工程的根目錄
- 接下來要解決的問題是:IDE遠程打開的文件夾里有多個工程,我只想打開其中的一個maven工程進行開發(fā)和調(diào)試。
- 頂部菜單選擇"File" -> “Project structure…”。
- 點擊下圖紅框位置的X符號,會刪除當前內(nèi)容根目錄(Content Root)。
- 點擊下圖紅框中的加號,重新添加內(nèi)容根目錄(Content Root)。
- 選擇用于開發(fā)的文件夾即可。
- 選擇完畢后,終于見到熟悉的目錄結(jié)構(gòu)。
- 您可能會覺著這一段的操作是多此一舉:只要在遠程連接的時候設(shè)置工作目錄是quarkus-tutorials就行了,沒必要這么麻煩,您說的沒錯,在遠程連接的時候確實可以直接指定目錄,但是如果此刻使用的是Jetbrains的space,那里無法直接指定目錄,只能直接打開。
作為maven工程運行
- 關(guān)于服務(wù)器的JDK,如果裝了,請按照下圖位置去選擇,如果沒有安裝,按照下圖進行遠程下載即可。
- 此刻,IDE并未識別到這是個maven工程,需要打開pom.xml,然后在右鍵菜單中選擇Add as Maven Project,如下圖紅框。
- 等待項目加載和更新完成后(生成索引時間較長,我這邊半小時),終于見到了熟悉的maven項目頁面,可見和用IDEA時候并無區(qū)別。
- 試試maven的單元測試,如下圖,和使用IDEA并無區(qū)別,順利執(zhí)行。
端口轉(zhuǎn)發(fā)
- 開發(fā)web應(yīng)用時,啟動應(yīng)用后,訪問遠程IP地址和端口可能比較麻煩(有的服務(wù)器涉及到安全問題不輕易開端口),此時JetBrains Client提供的端口轉(zhuǎn)發(fā)功能非常實用。
- 端口轉(zhuǎn)發(fā)配置方式如下圖,這樣我訪問本機的8080端口時,請求就會轉(zhuǎn)到服務(wù)器的8080端口。
- 啟動應(yīng)用試試,我的應(yīng)用是個普通web應(yīng)用,啟動后監(jiān)聽8080端口,然而我并沒有給服務(wù)器開通8080端口到外網(wǎng),如下圖,從本地可以訪問成功。
其他要注意的地方
- 退出的時候,會提示是否關(guān)閉遠程服務(wù),請自行選擇,我選擇的是Close and Keep Running。
- 如果嫌每次輸入密碼麻煩,就在idea中保存起來。
- 下次再打開時就會出現(xiàn)之前的記錄,點擊即可進入。
- Git提交功能也可以正常使用:本地的提交其實是將服務(wù)器上的代碼提交到Github。
- 最后別忘了去插件管理頁面安裝常用插件。
- 至此,IDEA遠程開發(fā)的實際體驗已經(jīng)完成,希望本文能給您一些參考,助您搭建一個穩(wěn)定高性能的開發(fā)環(huán)境。
責(zé)任編輯:姜華
來源:
今日頭條