前言:IntelliJ IDEA
如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了。其实笔者也是一枚从Eclipse转IDEA的探索者,随着近期的不断开发实践和调试,逐步体会到这款智能IDE带来的巨大开发便利,在强大的插件功能支持下,诸如对Git和Maven的支持简直让人停不下来,各种代码提示,包括JS更是手到擒来,最终不得不被这款神奇的IDE所折服。为了让身边更多的小伙伴参与进来,决定写下这篇文章,与君共享。经过前期的不断练习,后端开发之前使用的是eclipse和STS,注意eclipse中使用时快捷键失效的(禁用搜狗输入法的快捷键)。但是后期开发过程中我会选择idea作为开发工具使用。Eclipse通常用于实际项目的开发,STS用于Spring Boot和Spring Cloud的项目开发和进行框架的搭建,IDEA用于练习相应的新技术(JDK8、JDK9)。如果想获得更多软件工具可以查看开发工具文章。
高级传送门:IDEA 终极版下载地址
激活方法: 安装完成后选择License 输入http://intellij.mandroid.cn
更多激活方法可以参考JetBrains破解文章。
正文:IntelliJ IDEA 使用教程
1. IDEA VS Eclipse 核心术语比较
由下图可见:两者最大的转变就在于工作空间概念的转变,并且在IDEA当中,Project和 Module是作为两个不同的概念,对项目结构是重要意义的,这也恰恰是许多IDEA初学者觉得困扰的地方。1.1 为什么要取消工作空间?
答: 简单来说,IDEA不需要设置工作空间,因为每一个Project都具备一个工作空间!!对于每一个IDEA的项目工程(Project)而言,它的每一个子模块(Module)都可以使用独立的JDK和MAVEN。这对于传统项目迈向新项目的重构添加了极大的便利性,这种多元化的灵活性正是Eclipse所缺失的,因为开始Eclipse在初次使用时已经绑死了工作空间。
1.2 此外,很多新手都会问,为什么IDEA里面的子工程要称为Module?
答:其实就是模块化的概念,作为聚合工程亦或普通的根目录,它称之为Project,而下面的子工程称为模块,每一个子模块之间可以相关联,也可以没有任何关联。
2. 当前项目配置VS默认配置
2.1 为什么有了当前项目配置,还需要默认配置呢?
答:因为IDEA没有工作空间的概念,所以每个新项目(Project)都需要设置自己的JDK和MAVEN等相关配置,这样虽然提高了灵活性,但是却要为每个新项目都要重新配置,这显然不符合我们的预期。在这个背景下,默认配置给予当前项目配置提供了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等版本比较新,所以目前国内的一些仓库还没有新版本的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>
相关插件?
在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中加入插件可以不需要创建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的支持 直接设置执行程序,右边Test提示成功即可。
具体步骤:顶部工具栏 File ->Other Settings -> Default Settings -> Version Control -> Git
部分小伙伴反馈说无法找到svn.exe,解决方法:重装SVN,配置项重新选择command line client tools 即可。
屏蔽文件:.iml;.idea;.gitignore;.sh;.classpath;.project;*.settings;target;logs;
6. 自动导包和智能移除 (默认配置)
具体步骤:顶部工具栏 File ->Other Settings -> Default Settings -> Auto Import说明: 在网上看到很多人在提问IDEA为什么不能优化导包而Eclipse可以,所以特意抽出来跟大家分享IDEA如何优化导包。
7. Tomcat Server(当前项目配置)
很多小伙伴刚开始都找不到Tomcat的配置,其实很简单,Tomcat或者Jetty这些都是部署的容器,自然会联想到Deployment ,打开部署配置,可以看到应用服务器的配置。
配置Tomcat方法: File -> Settings -> Deployment -> Application Servers -> Tomcat Server
具体配置方法,如下图:
IDEA 必备小技能
为了提升开发效率,撸主贴心为大家准备以下实用指数五颗星的小技巧:
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. 调整字体类型和字体大小和主题
默认的白色背景和细小的字体会影响大家的编码体验,这里特意提供了调整代码窗的快捷配置。打开配置,搜索Font,然后再Font可以调整字体类型,Size可以调整字体大小,如图:11. 将快捷键设置为跟Eclipse一样
很多人可能并不习惯IDEA的快捷键,为了方便,这里我们将快捷键设置为跟 Eclipse一样。
12. 打开常用工具栏
具体步骤:顶部导航栏 - View -> 勾选 Toolbar & Tool Buttons
13. 打开Maven神器(强烈推荐!)
具体步骤:右侧直接点击 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数据库管理工具的使用(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等基础配置。
(2)IDEA如何删除项目工程?
答:问这个问题的Coder真的好可爱啊哈哈,很肯定的回答你,不需要删,点击File-> Close Project 即可快速关闭当前项目; 示例:
(3)如何在单个窗口打开多个Maven工程啊?
答:随便新建一个文件夹,然后将工程都扔进去,使用IDEA打开这个文件夹。
(4)如何为当前项目工程添加多个模块啊?
答: 对着工程右键 -> 选择New -> Module -> 通常选择Spring Initializr ,如图:
Intellij IDEA 一些不为人知的技巧
无处不在的跳转
- 项目直接的跳转(next project window、previous project window)
- 文件直接的跳转(Ctrl+E)
- 浏览修改位置的跳转
- 书签标记的跳转(bookmarks)
- 收藏位置和文件(add to favorites)
精准搜索
- 精准搜索类()
- 精准搜索文件()
- 精准搜索符号,即搜索属性、函数()
- 精准搜索全局字符串()
代码小助手
- 列操作()
- live template(常用设置:main、psfi、psfs、pi、ps)
- postfix(for、sout、field、return、nn)
- alter+enter(自动创建函数、list replace、字符串format或build、实现接口、单词拼写、导包)
编写高质量代码
- 重构(变量重构、方法重构)
- 抽取(抽取变量、抽取静态变量、抽取成员方法,抽取方法参数、抽取函数)
寻找修改轨迹
- git的集成(annotate、移动所以改动之处previous change)
- local history
关联一切
- spring的关联
- 关联数据库
调试程序
- 断点调试(添加断点、单步运行F8、F9、查看所以断点、禁止所以断点、条件断点、表达式求值)
run anywhere if you can
文件操作
- 在当前文件夹同一级目录下面新建一个文件(Ctrl+Alt+Ins)
- 复制当前文件(Ctrl+Shift+Alt+t)
- 复制当前文件(Shift+Alt+v)
文本操作
- 复制简单文件名
- 复制完整路径文件名
- 多文本复制(Shift+Ctrl+v),访问历史粘贴板。
结构图
- 查看当前field、method大纲。(Ctrl+o)
- 查看maven依赖图和类图。(Ctrl+Alt+Shift+u)
- 查看类继承结构,方法调用层次。
Language Injection
大家都知道在 Java 的 String 中编辑有 JSON 的话有多麻烦,各种转义真是让人疯狂,在 Intellij IDEA 中,我们可以直接使用 Intellij IDEA 的 Language Injection 的功能(Alt + Enter)将一个字符串标记为 JSON,就可以非常方便地编写 JSON 了,再也不用担心转义的问题了。tongs
Rest Client
Intellij IDEA 里面内置了一个 Rest Client,大家可以通过 Ctrl+ Shift + A,然后搜索 Rest Client 来找到或者在菜单栏中打开。等价于我们通常使用的postman接口调试工具。
粘贴版历史
如果使用过 Mac 里面的 Alfred 的话,可能大家早就习惯了 Alfred 的粘贴板历史的能力,真是复制粘贴的神器啊。其实 Intellij IDEA 里面也提供了这样的能力,我们可以直接通过 Ctrl+ Shift + V 来进行访问历史粘贴板。
类结构图
可以查看类图结构
总结
插件配置
Translation
是一个翻译插件,支持中英互译、单词朗读。需要有有道的账号
Alibaba Java Coding Guidelines plugin support
代码规范检查插件
Lombok plugin
代码简洁之道中提到的插件,可以简写代码。
Background Image Plus
设置自己IDE的背景图片。
emacsIdea
字符跳转插件(Atrl+J)
vim
多窗口编辑
stackoverflow
stackoverflow,不需要去浏览器中查找,只要右键就可以!
Gsonformat
可根据json数据快速生成java实体类(alt+s)。
Gitee
提交开源代码到码云上。
mybatisx
MybatisX 辅助 idea 快速开发插件,为效率而生。
MyBatisCodeHelperPro
MyBatisCodeHelperPro需要破解,可以使用MyBatisCodeHelper绿色版
RestfulToolkit
Java WEB开发必备,再也不用全局搜索RequestMapping,快速查找对应的Controller映射方法,同时可以进行接口的调用。
Custom Postfix Templates
可以自定义Postfix模板
Jrebel
热部署插件JRebel