IntelliJ IDEA是目前最好最強最智慧的Java IDE,前幾天,他剛剛年滿18歲。
本文,給大家推薦幾款我私藏已久的,自己經常使用的,可以提升程式碼效率的外掛。
IDEA外掛簡介
常見的IDEA外掛主要有如下幾類:
常用工具支援
Java日常開發需要接觸到很多常用的工具,為了便於使用,很多工具也有IDEA外掛供開發使用,其中大部分已經在IDEA中預設集成了。例如maven、git、svn、tomcat、jetty、jrebel、Gradle等。
功能增強
還有些外掛提供了一些IDE中不具有的功能,比如靜態程式碼掃描、程式碼自動生成等。
框架整合
整合框架主要是為了提供框架定製的程式碼和配置的生成,以及快速的訪問框架提供的功能。例如整合Spring框架,Mybatis框架等。
UI定製化及最佳化
UI定製化相關的外掛主要提供一下個性化需求定製,例如修改編輯區的背景圖片外掛、修改程式碼顏色等。
其他程式語言支援
IDEA主要支援Java,為了使用其他語言,可以使用一些支援其他語言的外掛,透過這些外掛可以實現語法分析,配色主題,程式碼格式化和提示等功能。例如Go語言的支援的外掛。
個人或者公司特殊需求
公司內部外掛
我的外掛一覽
這裡簡單介紹一些筆者日常開發中使用到的外掛。 以下是我的IDEA中自己安裝的外掛串列。
這些外掛都是我經過很長時間的使用之後最終保留下來的,都是值得安裝的一些外掛。其中被我打碼的就是公司內部外掛。

IDEA外掛安裝
IDEA的外掛安裝非常簡單,對於很多外掛來說,只要你知道外掛的名字就可以在IDEA裡面直接安裝。
Preferences—>Plugins—>查詢所需外掛—>Install
或者
Preferences—>Plugins—>Install plug from disk —>選擇下載好的外掛安裝
安裝之後重啟IDEA即可生效
IDEA外掛倉庫
IntelliJ IDEA激發了許多Java開發人員編寫外掛, IntelliJ IDEA Plugins 中目前包含3000+個外掛並且還在不斷增長。
IDEA外掛倉庫地址呢:
https://plugins.jetbrains.com/?idea
基本功能
作者目前使用的IntelliJ IDEA版本是專業版2018.2.4(Ultimate Edition)

很多外掛中提供的功能在這個版本中都已經整合進來了,這裡簡單說幾個可能比較常用的,這幾種功能就無需加裝外掛了。
目前,IDEA支援設定背景圖片。這對於廣大程式員來說無疑是個好功能。整日對著枯燥的程式碼實在是會讓人疲乏。要是可以設定一張美女圖片的話。。。
設定方法
Ctrl+Shift+A(或者help -> find action)呼叫彈窗後輸入Set Background Image

在裡面設定要設定為Image的圖片,透明度調到15左右,儲存即可。
效果如下

目前IntelliJ IDEA已經有一個內建的terminal工具,可以方便的使用shell命令。

目前很多新版本的IntelliJ IDEA中,已經內建了很多support外掛,比如我們常用的markdown support 、UML support 以及 android support等。
PS:由於作者使用的是專業版,不知道社群版是否也會內建這些外掛,如果沒有內建的話,讀者可以根據需要自行下載相關外掛並安裝。
有了markdowm support外掛以後,就可以直接預覽md語法的內容了。
必備外掛
接下來,開始介紹一些我比較常用的外掛,這些外掛可以大大提升開發效率。
目前,Java開發很多都在使用maven進行專案管理和自動構建。
日常開發中,可能經常會遇到jar包衝突等問題,就需要透過檢視maven依賴樹來檢視依賴情況。這種方式不是很高效,這裡推薦一個外掛,安裝之後,直接開啟pom檔案,即可檢視依賴數,還能自動分析是否存在jar包衝突。
一旦安裝了Maven Helper外掛,只要開啟pom檔案,就可以開啟該pom檔案的Dependency Analyzer檢視(在檔案開啟之後,檔案下麵會多出這樣一個tab)。
進入Dependency Analyzer檢視之後有三個檢視選項,分別是Conflicts(衝突)、All Dependencies as List(串列形式檢視所有依賴)、All Dependencies as Tree(樹結構檢視所有依賴)。並且這個頁面還支援搜尋。
FindBugs很多人都並不陌生,Eclipse中有外掛可以幫助查詢程式碼中隱藏的bug,IDEA中也有這款外掛。
使用方法很簡單,就是可以對多種級別的內容進行finbugs
分析完之後會有一個檢視進行提示,詳細的說明是哪種問題。
 按照提示解決完問題之後再執行findbug檢視情況即可。
2017年10月14日杭州雲棲大會,Java程式碼規約掃描外掛全球首發儀式正式啟動,規範正式以外掛形式公開走向業界,引領Java語言的規範之路。
Java程式碼規約掃描外掛以今年年初釋出的《阿裡巴巴Java開發規約》為標準,作為Eclipse、IDEA的外掛形式存在,檢測JAVA程式碼中存在不規範得位置然後給予提示。規約外掛是採用kotlin語言開發的,感興趣的同學可以去開看外掛原始碼。
阿裡巴巴規約外掛包含三個子選單:編碼規約掃描、關閉試試檢測功能。
並且,該外掛支援在編寫程式碼的同時進行提示,
這款外掛,真的可以很大程度上提升程式碼質量,一定要安裝。
Java開發中,經常有把json格式的內容轉成Object的需求,比如專案開始時,合作方給你提供了一個json格式request/response,這時候你就需要將其定義成一個Java類,GsonFormat這款外掛可以實現該功能。

在Java中,我們經常會定義很多JavaBean,這些Bean需要有getter、setter、toString、equals和hashCode等方法。
通常情況下,我們可以使用IDEA的快捷鍵生成這些程式碼,但是自動生成的程式碼後,如果bean中的屬性一旦有修改,需要重新生成,給程式碼維護增加了一定的負擔。
有一款很好的外掛,可以幫助開發者節省這部分工作。那就是Lombok。
只要在IDEA中安裝了該外掛,只需要在JavaBean中新增一行註解程式碼,外掛就會自動幫我們生成getter、setter、toString、equals和hashCode等方法。
當然,這些方法不止在IDE中的程式碼呼叫中需要用到,在真正線上部署的時候也需要有,所以,還需要使用maven引入一個lombok的包。
org.projectlombok
lombok
1.16.10
/**
* @author Hollis
*/
public class HollisLab {
public static void main(String[] args) {
Wechat wechat = new Wechat();
wechat.setId(“Hollis”);
wechat.setDesc(“每日更新Java技術文章”);
System.out.println(wechat);
}
}
@Data
class Wechat {
private String id;
private String desc;
}
輸出結果:
Wechat(id=Hollis, desc=每日更新Java技術文章)
我們在Wechat類上面添加了@Data註解,外掛就自動幫我們添加了getter/setter和toString方法。
字串日常開發中經常用到的,但是不同的字串型別在不同的地方可能有一些不同的規則,比如類名要用駝峰形式、常量需要全部大寫等,有時候還需要進行編碼解碼等。這裡推薦一款強大的字串轉換工具——String Manipulation。
它強大到什麼程度,看下他的功能串列你就知道了:
-
- 文字轉換操作
- 切換樣式(camelCase, hyphen-lowercase, HYPHEN-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase)
- 轉換為SCREAMING_SNAKE_CASE (或轉換為camelCase)
- 轉換為 snake_case (或轉換為camelCase)
- 轉換為dot.case (或轉換為camelCase)
- 轉換為hyphen-case (或轉換為camelCase)
- 轉換為hyphen-case (或轉換為snake_case)
- 轉換為camelCase (或轉換為Words)
- 轉換為camelCase (或轉換為lowercase words)
- 轉換為PascalCase (或轉換為camelCase)
- 選定文字大寫
- 樣式反轉
- Un/Escape
- Un/Escape 選中的 java 文字
- Un/Escape 選中的 javascript 文字
- Un/Escape 選中的 HTML 文字
- Un/Escape 選中的 XML 文字
- Un/Escape 選中的 SQL 文字
- Un/Escape 選中的 PHP 文字
- 將 diacritics(accents) 轉換為 ASCII
- 將非ASCII 轉換為轉義的Unicode
- 將轉義的Unicode轉換為字串
- Encode/Decode
- Encode 選中的文字為 MD5 Hex16
- De/Encode 選中的文字為 URL
- De/Encode 選中的文字為 Base64
- 遞增/遞減
- 遞增/遞減所有找到的數字
- 複製行並且遞增/遞減所有找到的數字
- 建立序列:保持第一個數字,遞增替換所有其他數字
- 遞增重覆的數字
- 按自然順序排序
- 按行倒序
- 按行隨機排序
- 區分大小寫A-z排序
- 區分大小寫z-A排序
- 不區分大小寫A-Z排序
- 不區分大小寫Z-A排序
- 按行長度排序
- 透過子選擇行排序:每行僅處理一個選擇/插入符號
- 對齊
- 透過選定的分隔將選定的文字格式化為列/表格
- 將文字對齊為左/中/右
- 過濾/刪除/移除
- grep選定的文字,所有行不匹配輸入文字將被刪除。 (不能在列樣式下工作)
- 移除選定的文字
- 移除選定文字中的所有空格
- 刪除選定文字中的所有空格
- 刪除重覆的行
- 只保留重覆的行
- 刪除空行
- 刪除所有換行符
- 其他
- 交換字元/選擇/線/標記
- 切換檔案路徑分隔符:Windows < – > UNIX
- 文字轉換操作
安裝好外掛後,選中需要處理的內容後,按快捷鍵Alt+m,即可彈出工具功能串列。
很好很強大的一款字串處理工具。
目前很多開發都在使用git做版本控制工具,但是有些時候有些程式碼我們是不想提到到我們的程式碼倉庫中的,比如ide自動生成的一些配置檔案,或者是我們打包生成的一些jar檔案等,這時候就需要編寫一個.ignore檔案,來排除那些不想被版本管理的檔案。
這裡推薦一個好用的外掛.ignore,他可以幫我們方便的生成各種ignore檔案。
安裝外掛後,選中專案,右鍵新建的時候,會多出一個.ignore檔案的選項,可以透過這個選項建立ignore檔案。
在彈出的對話方塊中,可以自動幫我們生成一份.ignore檔案,這裡我們讓其幫忙自動排除所有和idea有關的檔案。

目前ORM框架中,Mybatis非常受歡迎。但是,同時給很多開髮帶來困擾的就是Mybatis需要很多xml的配置檔案,有的時候很難去進行修改。
這裡推薦一款神器,可以讓你像編輯java程式碼一樣編輯mybatis的檔案。
Intellij Idea Mybatis外掛主要功能:
- 提供Mapper介面與配置檔案中對應SQL的導航
- 編輯XML檔案時自動補全
- 根據Mapper介面, 使用快捷鍵生成xml檔案及SQL標簽
- ResultMap中的property支援自動補全,支援級聯(屬性A.屬性B.屬性C)
- 快捷鍵生成@Param註解
- XML中編輯SQL時, 括號自動補全
- XML中編輯SQL時, 支援引數自動補全(基於@Param註解識別引數)
- 自動檢查Mapper XML檔案中ID衝突
- 自動檢查Mapper XML檔案中錯誤的屬性值
- 支援Find Usage
- 支援重構從命名
- 支援別名
- 自動生成ResultMap屬性
 (圖源:https://www.oschina.net/p/intellij-mybatis-plugin)
但是這款外掛是收費的,但是不影響他確實是一個很實用,可以很大程度上提升開發效率的外掛。讀者可以考慮使用Free Mybatis plugin(這款外掛我沒用過,具體是否好用有待考證)。
對於很多剛剛開始使用IDEA的開發者來說,最苦惱的就是不知道快捷鍵操作是什麼。
使用IDEA,如果所有操作都使用滑鼠,那麼說明你還不是一個合格的程式員。
這裡推薦一款可以進行快捷鍵提示的外掛Key promoter X。
Key Promoter X 是一個提示外掛,當你在IDEA裡面使用滑鼠的時候,如果這個滑鼠操作是能夠用快捷鍵替代的,那麼Key Promoter X會彈出一個提示框,告知你這個滑鼠操作可以用什麼快捷鍵替代。
當我使用滑鼠檢視一個方法都被哪些類使用的時候,就會提示:
記住這個快捷鍵以後,就可以使用快捷鍵代替滑鼠啦。
前面介紹了一款可以透過使用快捷鍵來代替滑鼠操作的外掛,這裡再介紹一款可以徹底擺脫滑鼠的外掛,即AceJump
AceJump允許您快速將游標導航到編輯器中可見的任何位置,只需點選“ctrl +;”,然後輸入一個你想要跳轉到的字元,之後鍵入匹配的字元就跳轉到你想要挑戰的地方了。
如以上程式碼,我想在這個類中,跳轉到println那個位置,只需要按下快捷鍵:“ctrl +;”,然後輸入println,即可定位到標的位置。
上圖中,我輸入了pri三個字母后,頁面提示三個可選項,分別用字母F、J、G標註,這時候只需要按下對應字母,即可快速定位到指定位置,是不是很方便。
最後,介紹一款程式員很好的在妹子面前裝X的外掛——activate-power-mode 。
安裝了這款外掛之後,你寫程式碼的時候,就會附加一些狂拽炫酷屌炸天的效果:

總結
本文一共介紹了11款可以提升程式員開發效率、提升程式碼質量、提升編碼心情的軟體。歡迎大家安裝嘗試一下。