前言:IntelliJ IDEA
如果說IntelliJ IDEA是一款現(xiàn)代化智能開發(fā)工具的話,Eclipse則稱得上是石器時代的東西了。其實筆者也是一枚從Eclipse轉(zhuǎn)IDEA的探索者,隨著近期的不斷開發(fā)實踐和調(diào)試,逐步體會到這款智能IDE帶來的巨大開發(fā)便利,在強大的插件功能支持下,諸如對Git和Maven的支持簡直讓人停不下來,各種代碼提示,包括JS更是手到擒來,最終不得不被這款神奇的IDE所折服。為了讓身邊更多的小伙伴參與進來,決定寫下這篇文章,與君共享。經(jīng)過前期的不斷練習,后端開發(fā)之前使用的是eclipse和STS,注意eclipse中使用時快捷鍵失效的(禁用搜狗輸入法的快捷鍵)。但是后期開發(fā)過程中我會選擇idea作為開發(fā)工具使用。Eclipse通常用于實際項目的開發(fā),STS用于Spring Boot和Spring Cloud的項目開發(fā)和進行框架的搭建,IDEA用于練習相應的新技術(shù)(JDK8、JDK9)。如果想獲得更多軟件工具可以查看開發(fā)工具文章。
高級傳送門:IDEA 終極版下載地址
激活方法: 安裝完成后選擇License 輸入http://intellij.mandroid.cn
更多激活方法可以參考JetBrains破解文章。
正文:IntelliJ IDEA 使用教程
1. IDEA VS Eclipse 核心術(shù)語比較
由下圖可見:兩者最大的轉(zhuǎn)變就在于工作空間概念的轉(zhuǎn)變,并且在IDEA當中,Project和 Module是作為兩個不同的概念,對項目結(jié)構(gòu)是重要意義的,這也恰恰是許多IDEA初學者覺得困擾的地方。
1.1 為什么要取消工作空間?
答: 簡單來說,IDEA不需要設置工作空間,因為每一個Project都具備一個工作空間?。τ诿恳粋€IDEA的項目工程(Project)而言,它的每一個子模塊(Module)都可以使用獨立的JDK和MAVEN。這對于傳統(tǒng)項目邁向新項目的重構(gòu)添加了極大的便利性,這種多元化的靈活性正是Eclipse所缺失的,因為開始Eclipse在初次使用時已經(jīng)綁死了工作空間。
1.2 此外,很多新手都會問,為什么IDEA里面的子工程要稱為Module?
答:其實就是模塊化的概念,作為聚合工程亦或普通的根目錄,它稱之為Project,而下面的子工程稱為模塊,每一個子模塊之間可以相關(guān)聯(lián),也可以沒有任何關(guān)聯(lián)。
2. 當前項目配置VS默認配置
2.1 為什么有了當前項目配置,還需要默認配置呢?
答:因為IDEA沒有工作空間的概念,所以每個新項目(Project)都需要設置自己的JDK和MAVEN等相關(guān)配置,這樣雖然提高了靈活性,但是卻要為每個新項目都要重新配置,這顯然不符合我們的預期。在這個背景下,默認配置給予當前項目配置提供了Default選項,問題自然就迎刃而解了。
2.2 初始化步驟
打開默認配置:頂部導航欄 -> File -> Other Settings -> Default Settings /ProjectStructs
打開當前配置:頂部導航欄 -> File -> Settings / ProjectStructs

3. 全局JDK和編碼(默認配置)
具體步驟:頂部工具欄 File ->Other Settins -> Default Project Structure -> SDKs -> JDK
具體步驟:頂部工具欄 File ->Other Settins -> Default Settings->editor->file encodings把transparent native-to-ascll conversion勾選上就行了。


4. 全局Maven(默認配置)
下載配置maven

推薦一:阿里云的鏡像站(首推,新站,速度暴快)
<!—1.配置jar包的倉庫地址-->
<localRepository>D:/mavenrepository</localRepository>
<!—2.配置jar包的下載地址-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
推薦二:spring-boot和spring-cloud等版本比較新,所以目前國內(nèi)的一些倉庫還沒有新版本的jar
<mirror>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone</url>
<mirrorOf>central</mirrorOf>
</mirror>
注意:Setting.xml文件鏡像地址:通常將其復制出來一份到mavenRepository目錄下。(方便版本更換)
Jar包的下載地址01
Jar包的下載地址02
解決不能下載到的jar包問題?
mvn install:install-file -Dfile=message-text-20160607.jar -DgroupId=com.taobao.sdk -DartifactId=message-text -Dversion=1.0 -Dpackaging=jar
<dependency>
<groupId>com.taobao.sdk</groupId>
<artifactId>message-text</artifactId>
<version>20160607</version>
</dependency>
相關(guān)插件?
在pom.xml中加入插件可以跳過單元測試:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
孫宇提供的:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- 跳過單元測試 -->
<skip>true</skip>
<forkMode>once</forkMode>
<argLine>-Dfile.encoding=UTF-8</argLine>
</configuration>
</plugin>
在pom.xml中加入插件可以不需要創(chuàng)建web.xml測試:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
IDEA配置步驟:頂部工具欄 File ->Other Settings -> Default Settings -> Build & Tools -> Maven

5. 版本控制Git/Svn (默認配置)
命令:svn upgrade
示例: IDEA默認集成了對Git/Svn的支持 直接設置執(zhí)行程序,右邊Test提示成功即可。
具體步驟:頂部工具欄 File ->Other Settings -> Default Settings -> Version Control -> Git
部分小伙伴反饋說無法找到svn.exe,解決方法:重裝SVN,配置項重新選擇command line client tools 即可。圖-05圖-05IDEA配置SVN
SVN提交時忽略部分文件
屏蔽文件:.iml;.idea;.gitignore;.sh;.classpath;.project;*.settings;target;logs;
SVN提交時忽略.iml文件的提交
6. 自動導包和智能移除 (默認配置)
具體步驟:頂部工具欄 File ->Other Settings -> Default Settings -> Auto Import
說明: 在網(wǎng)上看到很多人在提問IDEA為什么不能優(yōu)化導包而Eclipse可以,所以特意抽出來跟大家分享IDEA如何優(yōu)化導包。
7. Tomcat Server(當前項目配置)
很多小伙伴剛開始都找不到Tomcat的配置,其實很簡單,Tomcat或者Jetty這些都是部署的容器,自然會聯(lián)想到Deployment ,打開部署配置,可以看到應用服務器的配置。
配置Tomcat方法: File -> Settings -> Deployment -> Application Servers -> Tomcat Server
具體配置方法,如下圖:

IDEA 必備小技能
為了提升開發(fā)效率,擼主貼心為大家準備以下實用指數(shù)五顆星的小技巧:
8. 自動編譯
具體步驟:頂部工具欄 File ->Other Settings -> Default Settings -> Auto Import

自動編譯(Runtime)
具體步驟: 敲擊 Ctrl + Shift + Alt + / 然后進入Registry ,找到compiler.automake.allow.when.app.running ,然后勾選上。

9. 取消大小寫敏感
具體步驟:
File | Settings | Editor | General | Code Completion Case | Sensitive Completion = None

10. 調(diào)整字體類型和字體大小和主題
默認的白色背景和細小的字體會影響大家的編碼體驗,這里特意提供了調(diào)整代碼窗的快捷配置。打開配置,搜索Font,然后再Font可以調(diào)整字體類型,Size可以調(diào)整字體大小,如圖:
11. 將快捷鍵設置為跟Eclipse一樣
很多人可能并不習慣IDEA的快捷鍵,為了方便,這里我們將快捷鍵設置為跟 Eclipse一樣。

12. 打開常用工具欄
具體步驟:頂部導航欄 - View -> 勾選 Toolbar & Tool Buttons

13. 打開Maven神器(強烈推薦?。?/h4>
具體步驟:右側(cè)直接點擊 Maven Project 管理插件 ,記得先打開常用工具欄,詳見8.3。

14. 懶人必備快捷鍵
快捷鍵的配置,習慣了eclipse快捷鍵設置。(completion、close)
File->Settings-> Keymap-> 搜索completion -> 給Basic添加快捷鍵為Alt+/。
File->Settings-> Keymap-> 搜索close-> 添加快捷鍵為Ctrl+W。
File->Settings-> Keymap-> 搜索Reformat Code-> 添加快捷鍵為Ctrl+Shift+F。快捷鍵的配置,習慣了Navicat Premium數(shù)據(jù)庫管理工具的使用(open console、execute)
File->Settings-> Keymap-> 搜索open console-> 添加快捷鍵為Ctrl+Q。
File->Settings-> Keymap-> 搜索execute-> 添加快捷鍵為Ctrl+R。按【鼠標中鍵】快速打開智能提示,取代alt+enter 。
File->Settings-> Keymap-> 搜索 Show Intention Actions -> 添加快捷鍵為鼠標中鍵。按【F2】快速修改文件名,告別雙手操作。
File->Settings-> Keymap-> 搜索 Rename -> 將快捷鍵設置為F2 。按【F3】直接打開文件所在目錄,瀏覽一步到位。
File->Settings-> Keymap-> 搜索 Show In Explorer -> 將快捷鍵設置為F3 。Ctrl+ E 來找到最近訪問的文件和Ctrl+ Shift + E 來訪問最近編輯的文件
Ctrl+ F 進行相應的搜索
File->Settings-> Keymap-> 搜索 find -> 將快捷鍵設置為Ctrl+ FCtrl+ F10快速運行程序
File->Settings-> Keymap-> 搜索 Run context configuration-> 將快捷鍵設置為Ctrl+ F10
15. 重度強迫癥患者
1.取消大小寫敏感,讓自動完成更齊全!
File->Settings ->Editor -> General->Code Completion Case->Sensitive Completion ->None。
2.自動隱藏注釋,讓源碼閱讀更為清爽!
File -> Settings -> Editor -> General -> Code Folding -> Documentation comments 勾選。
如何想快速一鍵打開全部注釋,則單擊鼠標右鍵,選擇Folding -> Expand Doc comments 。
- Maven自動下載源碼包,告別反編譯,直接上源碼注釋??!
File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven -> Importing
將Automatically Download 的 Source 勾上。
- 找回IntelliJ IDEA中 丟失的Run Dashboard 視圖
修改項目.idea文件夾下的workspace.xml文件,在接下來找到
<component name="RunDashboard">中添加下面代碼
<option name="configurationTypes">
<set>
<option value="SpringBootApplicationConfigurationType" />
</set>
</option>
IDEA十問十答
(1)如何打開本地工程/已存在的工程?
答:點擊File -> Open 打開 工程文件夾即可,注意先配置好JDK、Maven等基礎(chǔ)配置。
(2)IDEA如何刪除項目工程?
答:問這個問題的Coder真的好可愛啊哈哈,很肯定的回答你,不需要刪,點擊File-> Close Project 即可快速關(guān)閉當前項目; 示例:

(3)如何在單個窗口打開多個Maven工程?。?br> 答:隨便新建一個文件夾,然后將工程都扔進去,使用IDEA打開這個文件夾。
(4)如何為當前項目工程添加多個模塊???
答: 對著工程右鍵 -> 選擇New -> Module -> 通常選擇Spring Initializr ,如圖:


Intellij IDEA 一些不為人知的技巧
無處不在的跳轉(zhuǎn)
- 項目直接的跳轉(zhuǎn)(next project window、previous project window)
- 文件直接的跳轉(zhuǎn)(Ctrl+E)
- 瀏覽修改位置的跳轉(zhuǎn)
- 書簽標記的跳轉(zhuǎn)(bookmarks)
- 收藏位置和文件(add to favorites)
精準搜索
- 精準搜索類()
- 精準搜索文件()
- 精準搜索符號,即搜索屬性、函數(shù)()
- 精準搜索全局字符串()
代碼小助手
- 列操作()
- live template(常用設置:main、psfi、psfs、pi、ps)
- postfix(for、sout、field、return、nn)
- alter+enter(自動創(chuàng)建函數(shù)、list replace、字符串format或build、實現(xiàn)接口、單詞拼寫、導包)
編寫高質(zhì)量代碼
- 重構(gòu)(變量重構(gòu)、方法重構(gòu))
- 抽?。ǔ槿∽兞?、抽取靜態(tài)變量、抽取成員方法,抽取方法參數(shù)、抽取函數(shù))
尋找修改軌跡
- git的集成(annotate、移動所以改動之處previous change)
- local history
關(guān)聯(lián)一切
- spring的關(guān)聯(lián)
- 關(guān)聯(lián)數(shù)據(jù)庫
調(diào)試程序
- 斷點調(diào)試(添加斷點、單步運行F8、F9、查看所以斷點、禁止所以斷點、條件斷點、表達式求值)
run anywhere if you can
文件操作
- 在當前文件夾同一級目錄下面新建一個文件(Ctrl+Alt+Ins)
- 復制當前文件(Ctrl+Shift+Alt+t)
- 復制當前文件(Shift+Alt+v)
文本操作
- 復制簡單文件名
- 復制完整路徑文件名
- 多文本復制(Shift+Ctrl+v),訪問歷史粘貼板。
結(jié)構(gòu)圖
- 查看當前field、method大綱。(Ctrl+o)
- 查看maven依賴圖和類圖。(Ctrl+Alt+Shift+u)
- 查看類繼承結(jié)構(gòu),方法調(diào)用層次。
Language Injection
大家都知道在 Java 的 String 中編輯有 JSON 的話有多麻煩,各種轉(zhuǎn)義真是讓人瘋狂,在 Intellij IDEA 中,我們可以直接使用 Intellij IDEA 的 Language Injection 的功能(Alt + Enter)將一個字符串標記為 JSON,就可以非常方便地編寫 JSON 了,再也不用擔心轉(zhuǎn)義的問題了。tongs
Rest Client
Intellij IDEA 里面內(nèi)置了一個 Rest Client,大家可以通過 Ctrl+ Shift + A,然后搜索 Rest Client 來找到或者在菜單欄中打開。等價于我們通常使用的postman接口調(diào)試工具。
粘貼版歷史
如果使用過 Mac 里面的 Alfred 的話,可能大家早就習慣了 Alfred 的粘貼板歷史的能力,真是復制粘貼的神器啊。其實 Intellij IDEA 里面也提供了這樣的能力,我們可以直接通過 Ctrl+ Shift + V 來進行訪問歷史粘貼板。
類結(jié)構(gòu)圖
可以查看類圖結(jié)構(gòu)
圖-19
總結(jié)
插件配置
Translation
是一個翻譯插件,支持中英互譯、單詞朗讀。需要有有道的賬號
Alibaba Java Coding Guidelines plugin support
代碼規(guī)范檢查插件
Lombok plugin
代碼簡潔之道中提到的插件,可以簡寫代碼。
Background Image Plus
設置自己IDE的背景圖片。
emacsIdea
字符跳轉(zhuǎn)插件(Atrl+J)
vim
多窗口編輯
stackoverflow
stackoverflow,不需要去瀏覽器中查找,只要右鍵就可以!
Gsonformat
可根據(jù)json數(shù)據(jù)快速生成java實體類(alt+s)。
Gitee
提交開源代碼到碼云上。
mybatisx
MybatisX 輔助 idea 快速開發(fā)插件,為效率而生。
MyBatisCodeHelperPro
MyBatisCodeHelperPro需要破解,可以使用MyBatisCodeHelper綠色版
RestfulToolkit
Java WEB開發(fā)必備,再也不用全局搜索RequestMapping,快速查找對應的Controller映射方法,同時可以進行接口的調(diào)用。
Custom Postfix Templates
可以自定義Postfix模板
Jrebel
熱部署插件JRebel






