IntelliJ IDEA 從入門到上癮!
本文共計 1.5?W 字,80 張圖介紹 IDEA 中令人相見恨晚的技巧,本文中從入門、簡單項目創(chuàng)建開始,介紹 IDEA 中多光標操作、常用配置、插件、版本控制等等。一定包含你在別的文章沒有看到的內(nèi)容,對了,我把全網(wǎng) IDEA 相關(guān)的優(yōu)質(zhì)內(nèi)容聚合了起來,放在了 GitHub 上,倉庫名為:awesome-IntelliJ-IDEA,歡迎給個 Star!
地址:github.com/xiaoxiunique/awesome-IntelliJ-IDEA
提醒一下,本片文章太長,預(yù)計閱讀時間 30 min,建議轉(zhuǎn)發(fā)后再看。本文章目錄如下:
1. 創(chuàng)建項目
創(chuàng)建項目
創(chuàng)建包、Class
編碼
打包
...
2. 操作基礎(chǔ)
光標操作
數(shù)列光標
行尾添加光標
指定位置添加光標操作
格式批量調(diào)整
批量添加屬性注釋
提取 Json 字段信息
3. IDEA 常用快捷鍵
4. IDEA 常用設(shè)置
新窗口的形式打開多個項目 編碼問題 設(shè)置編譯器 設(shè)置類注釋 自動導(dǎo)包 內(nèi)存使用量展示 開啟懸浮提示 修改字體大小 顯示多行 Tab 設(shè)置字體、行距 GIT 配置 MAVEN 配置 …
5. IDEA 常用插件
AlibabaCloudToolkit
Git Flow
PlantUML
Rainbow Brackets
Alibaba Java Coding Guidelines
翻譯插件
mybatis?插件
IntelliJ Lombok plugin
GenAllSetter
GenDaoCode
CodeGlance
RestfulToolkit
Grep Console
MyBatis Log Plugin
GsonFormat
VisualVm Launcher
jclasslib bytecode viewer
Codota
Auto filling Java call arguments
Rainbow Brackets
SequenceDiagram
Java Stream Debugger
Ace Jump
6. IDEA 好看字體
Consolas JetBrainsMono
7.? 版本控制
查看每一行代碼的條件人, 提交時間 克隆遠程代碼 拉取遠程代碼 將暫存區(qū)代碼提交到本地庫 將本地庫 提交到遠程庫 切換分支, 或拉取遠程分支 查看當前打開類 歷史記錄 Stash Check Out
1. 創(chuàng)建項目



創(chuàng)建 package 和 class

開始編碼

輸出 print 方法

運行方法

將工程打包為 Jar 包


out/artifacts 文件夾,那么你將能看到 Jar 包
運行打包的應(yīng)用程序,執(zhí)行 Jar 就行了。
2. 操作基礎(chǔ)
Windows:
Alt + JMac:? Ctrl +G

Windows:
Ctrl + Shift + Alt + JMac:?
Ctrl + Command + G




格式批量調(diào)整

ctrl?+?alt?+?enter?將光標移動到當前行的上一行

批量添加 Swagger 屬性注釋




上面介紹了一些配合鼠標使用的快捷鍵,還有一些常用快捷鍵。
ctrl + p非常實用的快捷鍵, 有的時候我們自己寫的方法, 或者在看一些源碼時, 都非常有用
有時候在寫完一行代碼的時候需要添加注釋, 或者為類屬性添加注釋的時候需要跳到當前行的上一行, 這個快捷鍵就非常方便
最常用的快捷鍵之一, 快速的查找方法
最常用的快捷鍵之一, 項目慢慢的變大, 文件越來越多, 每次用鼠標去找 就太低效了
快速生成?try, if?等語句
當你試用了之后, 你會愛上這個快捷鍵的
將當前選中的代碼抽取為一個局部變量
在使用 mvc框架的時候, 往往我們只有一個接口的實例 這個快捷鍵可以直接到實現(xiàn)類中
讓代碼變得優(yōu)美, 是每個程序員都應(yīng)該注意的事, 方便自己和他人閱讀, 利人利己
idea 批量修改相同內(nèi)容
有的時候數(shù)據(jù)需要批量處理, 比如, 正常來說我們的實體類, 在使用 mybatis?等逆向工程進行生成的時候, 一般屬性是有注釋的, 但是在針對如果我們使用了swagger?等插件需要來顯示傳遞實體所代表的含義的時候, 就需要我們自己一個個的去寫, 就會顯得異常麻煩
在寫一些測試代碼的時候 這個快捷鍵就顯得特別方便
在微服務(wù)中 多個工程在一個項目中的時候, 這個方法就比較的好用, 這樣就不用自己一個一個的去點省去很多沒必要的操作
重新編譯當前項目
當你發(fā)現(xiàn)有的問題 特別的奇怪, 命名表面上沒問題, 但就是項目運行不了的時候, 重新編譯一下獲取就好了
快速的查看選中類, 選中方法的定義
有的時候我們不想進入方法內(nèi)部, 或者進入類的內(nèi)部查看細節(jié), 想要在外面就探查清楚, 就可以使用此種方法

Ctrl + ~?(感嘆號旁邊的按鍵)
2.?Code Style SchemeKeymap?(快捷鍵列表)

IDEA 以新窗口的形式打開多個項目
File - Settings - Appearance & Behavior - System Settings

修改 IDEA 默認編碼 -> UTF-8
File - Settings - Editor - File Encodings

設(shè)置統(tǒng)一編譯器和編譯版本
File - Setting - Build - Compiler - Java Compiler

設(shè)置類注釋
File - Editor- File and Code Templates

$$end$$?可以設(shè)置光標結(jié)束的位置自動導(dǎo)包
File - Editor- General - Auto Import

內(nèi)存使用量展示
由于日常開發(fā)時都是在公司的辦公電腦上進行的,所以內(nèi)存總是不夠用,但是又不清楚 IDEA 具體實時的占用了多少內(nèi)存。這個時候?qū)τ谝恍﹥?nèi)存并不是太夠的開發(fā)人員來說能看到實時的內(nèi)存使用量還是比較好的 File - Settings - Appearance & Behavior

開啟懸浮提示
有時候在看代碼的時候,不清楚一個類具體是干什么的,就會點進去看這個類的注釋,但是強大的 IDEA 是支持不用點進去就可以看到注釋的以及類的相關(guān)信息的。 File - Settings - Editor - General

Ctrl+鼠標滾軸修改字體大小
IDEA 也支持向瀏覽器那樣按住 Ctrl+鼠標滾軸來改變編輯區(qū)的字體的大小 File-->Settings-->Editor-->General。

顯示多行 Tab
當我們打開的標簽頁多了的時候,默認的會隱藏在右側(cè),當我們需要的時候在右側(cè)找到后再打開。IDEA 是支持多行顯示的,這樣在大屏幕的顯示器上也不用總?cè)c擊右側(cè)的去找剛才打開過的文件了 File - Settings - Editor - General - Editor Tabs

設(shè)置字體, 行距 讓代碼看著更舒服
File - Settings - Editor - Font

IDEA GIT 配置
File - Settings - Version Control - Git

IDEA MAVEN 配置
File - Settings - Build - Build Tools - Maven

<mirror>
????<id>nexusid>
????<mirrorOf>*mirrorOf>
????<url>http://maven.aliyun.com/nexus/content/groups/public/url>
mirror>
自動編譯



取消大小寫敏感

調(diào)整字體類型和字體大小

將快捷鍵設(shè)置為跟Eclipse一樣

打開常用工具欄
5. IDEA 常用插件
Maven?打包clean install, 然后copy?jar?包, 利用ftp工具上傳jar包到測試服務(wù)器, 然后kill?服務(wù), 在啟動服務(wù)?java -jar?, 有時更新頻繁 這就是一件非常麻煩的事Cloud Toolkit?是本地?IDE?插件,幫助開發(fā)者更高效地開發(fā)、測試、診斷并部署應(yīng)用。通過插件,您可以將本地應(yīng)用一鍵部署到云端(ECS、EDAS 和 Kubernetes 等)和任意服務(wù)器;并且它還內(nèi)置了?Arthas?程序診斷、Dubbo工具、Terminal Shell?終端和?MySQL?執(zhí)行器等工具。
Deploy to Host, 然后下方就會出現(xiàn)添加主機頁面
Add Host
Test Connection, 出現(xiàn)?Succeeded, 點擊?add, 代表添加成功
Deploy to Host
Run,?idea?便會, 先使用maven打包, 后發(fā)送到服務(wù)器的指定位置

Advanced?里面, 大家看看就知道了,后續(xù)有時間再完善筆記吧
插件作用:集成 Git Flow 讓我們更加專注在 開發(fā) 這件事上。
安裝

使用


主分支,產(chǎn)品的功能全部實現(xiàn)后,最終在master分支對外發(fā)布;
只讀分支,只能從release或hotfix分支合并,不能修改;
所有在master分支的推送應(yīng)該做標簽記錄,方便追溯。
主開發(fā)分支,基于master分支克隆,發(fā)布到下一個release;
只讀分支,feature功能分支完成,合并到develop(不推送);
develop拉取release分支,提測;
release/hotfix分支上線完畢,合并到develop并推送。
功能開發(fā)分支,基于develop分支克隆,用于新需求的開發(fā);
功能開發(fā)完畢后合并到develop分支(未正式上線之前不能推送到遠程中央倉庫)
feature可以同時存在多個,用于團隊多功能同步開發(fā),屬于臨時分支,開發(fā)完畢后可以刪除。
測試分支,feature分支合并到develop分支之后,從develop分支克隆;
只要用于提交給測試人員進行功能測試,測試過程中如果發(fā)現(xiàn)BUG在release分支修復(fù),修復(fù)完成上線后合并到
develop/master分支并推送完成,做標簽記錄;
臨時分支,上線后可刪除。
補丁分支,基于master分支克隆,主要用于對線上的版本進行BUG修復(fù);
修復(fù)完畢后合并到develop/master分支并推送,做標簽記錄;
所有hotfix分支的修改會進入到下一個release;
臨時分支,補丁修復(fù)上線后可以刪除;
1. 背景
安裝插件安裝地址:
https://plugins.jetbrains.com/plugin/7017-plantuml-integration
新建文件 - PlantUML File - 選擇想要創(chuàng)建的類型

流程圖



@startuml
left?to?right?direction
actor 普通 as?User
actor 審核 as?Aduitor
actor 編輯 as?Editor
actor 營銷 as?Marketing
actor 運營 as?Operator
actor 管理員 as?Admin
Admin --|> User
rectangle 社區(qū) {
??User -- (查看文章)
??User -- (發(fā)布文章/帖子)
??(帖子管理) <|-- (置頂)
??(帖子管理) <|-- (審核)
??(帖子管理) <|-- (推薦)
??(帖子管理) <|-- (刪除)
??(社區(qū)運營) <|-- (帖子管理)
???Operator -- (社區(qū)運營)
???Aduitor -- (社區(qū)運營)
???Editor -- (社區(qū)運營)
???Marketing -- (社區(qū)運營)
??(App 配置) <|-- (商品圖片配置)
??(App 配置) <|-- (啟動頁配置)
??(App 配置) <|-- (活動 Banner)
??(App 配置) <|-- (互動 Banner)
??(App 配置) <|-- (商城配置)
??(App 配置) <|-- (功能配置)
??(App 配置) <|-- (產(chǎn)品配置)
??(App 配置) <|-- (系統(tǒng)配置)
??(App 配置) <|-- (新人禮包)
??(App 配置) <|-- (個人中心)
??(App 配置) <|-- (渠道配置)
??Admin -- (App 配置)
}
@enduml

界面效果
動圖
Java代碼規(guī)范插件, 可以掃描整個項目找到不規(guī)范的地方 并且大部分可以自動修復(fù)。findbugs?強大,但是可以自動修復(fù), 阿里巴巴 Java 編碼指南插件支持。變量駝峰命名規(guī)范

lowerCamelCase命名風格字符串比較提示?equals
public?static?void?main(String[] args) {
????String str = null;
????if?(str.equals("test")) {
??????System.out.println("success");
????}
}
Java時, 很有可能會犯這樣的錯誤, 這里很明顯會報空指針異常, 而在編輯器中
"test“?應(yīng)該做為?equals方法的調(diào)用方, 并給出了原因, 應(yīng)為這樣很容易導(dǎo)致空指針異常, 并給出了例子當你的類命名不規(guī)范時
test.java,就會出現(xiàn)如下提示
安裝此插件后可以節(jié)約很多的開發(fā)時間, 在? mapper?層接口可以直接進入?xml文件中
IntelliJ Lombok plugin
<dependency>
????<groupId>org.projectlombokgroupId>
????<artifactId>lombokartifactId>
????<version>1.16.18version>
????<scope>providedscope>
dependency>
生命很寶貴, 沒有必要浪費在這個重復(fù)的工作上, 尤其是如果我們使用傳統(tǒng)的?get?set?方法, 在實體類進行變更的時候, 或多添加了列, 或減少了列, 又要重新生成對應(yīng)的?get set?這難道不就是浪費時間浪費生命嗎?
GenAllSetter
GenDaoCode
CodeGlance
RestfulToolkit
1.根據(jù) URL 直接跳轉(zhuǎn)到對應(yīng)的方法定義 ( Ctrl \ or Ctrl Alt N ); 2.提供了一個 Services tree 的顯示窗口; 3.一個簡單的 http 請求工具; 4.在請求方法上添加了有用功能: 復(fù)制生成 URL;,復(fù)制方法參數(shù)... 5.其他功能: java 類上添加 Convert to JSON 功能,格式化 json 數(shù)據(jù) ( Windows: Ctrl + Enter; Mac: Command + Enter )。
Grep Console
MyBatis Log Plugin
GsonFormat
快速的講一個?json轉(zhuǎn)換為一個實體 安裝完插件后?alt + s?放入正確的?json格式

VisualVm Launcher
jclasslib bytecode viewer
Codota
Auto filling Java call arguments
Rainbow Brackets
SequenceDiagram
Java Stream Debugger
AlibabaCloudToolkit
Git Flow
PlantUML
Rainbow Brackets
Alibaba Java Coding Guidelines
翻譯插件 mybatis?插件 IntelliJ Lombok plugin GenAllSetter GenDaoCode CodeGlance RestfulToolkit Grep Console MyBatis Log Plugin GsonFormat VisualVm Launcher jclasslib bytecode viewer Codota Auto filling Java call arguments Rainbow Brackets SequenceDiagram Java Stream Debugger Ace Jump
對比 Consolas
Consolas?字體

下載字體

下載后,解壓文件 直接雙擊擴展名為? tff?后綴的文件重啟? IDEAPerferences/Setting -> Editor -> Font,選擇?JetBrains Mono?確認即可
查看每一行代碼的條件人, 提交時間(大部分人不知道) 克隆遠程代碼 拉取遠程代碼 將暫存區(qū)代碼提交到本地庫 將本地庫 提交到遠程庫 切換分支, 或拉取遠程分支 查看當前打開類 歷史記錄 Stash Check Out



git clone origin url


git pull

git commit -m 'message'
?
git push

切換分支, 或拉取遠程分支

ctrl + shift + ` 或 alt + ~ + 7 或

alt + ~ + 4 查看項目工程歷史記錄
alt + ~ + 4
alt + 9?切換到?Version Control?面板 選擇log
git stash //把本地的改動暫存起來
git pull //拉取遠端分支(此時本地分支會回滾到上次commit的情況,新的改動都存在了stash中)
git stash pop // 將棧頂改動重新加回本地分支,就可以繼續(xù)修改了,當然,如果改好了就是add,commit,push啥的。。
git stash //把本地當前改動暫存起來,此時master分支就恢復(fù)到了上次拉取時的狀態(tài)
git checkout test //切換到需要改動的分支
git stash pop //將改動pop到自己當前的分支
alt + ~加?9

Check Out
git checkout GitHub主頁:https://github.com/xiaoxiunique
中國最大字幕組“人人影視”涼了!警方通報:因盜版視頻14人被抓
年輕人,我勸你遠離這些東西



