IDEA开发工具(更新中)

前言:IntelliJ IDEA

如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了。其实笔者也是一枚从Eclipse转IDEA的探索者,随着近期的不断开发实践和调试,逐步体会到这款智能IDE带来的巨大开发便利,在强大的插件功能支持下,诸如对Git和Maven的支持简直让人停不下来,各种代码提示,包括JS更是手到擒来,最终不得不被这款神奇的IDE所折服。为了让身边更多的小伙伴参与进来,决定写下这篇文章,与君共享。经过前期的不断练习,后端开发之前使用的是eclipse和STS,注意eclipse中使用时快捷键失效的(禁用搜狗输入法的快捷键)。但是后期开发过程中我会选择idea作为开发工具使用。Eclipse通常用于实际项目的开发,STS用于Spring Boot和Spring Cloud的项目开发和进行框架的搭建,IDEA用于练习相应的新技术(JDK8JDK9)。如果想获得更多软件工具可以查看开发工具文章。

高级传送门:IDEA 终极版下载地址

激活方法: 安装完成后选择License 输入http://intellij.mandroid.cn

更多激活方法可以参考JetBrains破解文章。

正文:IntelliJ IDEA 使用教程

1. IDEA VS Eclipse 核心术语比较

由下图可见:两者最大的转变就在于工作空间概念的转变,并且在IDEA当中,Project和 Module是作为两个不同的概念,对项目结构是重要意义的,这也恰恰是许多IDEA初学者觉得困扰的地方。
图-01
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

示例:
图-02

3. 全局JDK和编码(默认配置)

具体步骤:顶部工具栏 File ->Other Settins -> Default Project Structure -> SDKs -> JDK
具体步骤:顶部工具栏 File ->Other Settins -> Default Settings->editor->file encodings把transparent native-to-ascll conversion勾选上就行了。

示例: 根据下图步骤设置JDK目录,最后点击OK保存。
图-03
properties编码

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

示例: 理论上只要配置了Maven主目录即可,实际开发推荐采用User Settins file。
图-04

5. 版本控制Git/Svn (默认配置)

命令:svn upgrade
具体步骤:顶部工具栏 File ->Other Settings -> Default Settings -> Version Control -> Git

示例: IDEA默认集成了对Git/Svn的支持 直接设置执行程序,右边Test提示成功即可。
图-05
部分小伙伴反馈说无法找到svn.exe,解决方法:重装SVN,配置项重新选择command line client tools 即可。
图-05
IDEA配置
SVN

SVN提交时忽略部分文件

屏蔽文件:.iml;.idea;.gitignore;.sh;.classpath;.project;*.settings;target;logs;

SVN提交时忽略.iml文件的提交

6. 自动导包和智能移除 (默认配置)

具体步骤:顶部工具栏 File ->Other Settings -> Default Settings -> Auto Import
图-06

说明: 在网上看到很多人在提问IDEA为什么不能优化导包而Eclipse可以,所以特意抽出来跟大家分享IDEA如何优化导包。

7. Tomcat Server(当前项目配置)

很多小伙伴刚开始都找不到Tomcat的配置,其实很简单,Tomcat或者Jetty这些都是部署的容器,自然会联想到Deployment ,打开部署配置,可以看到应用服务器的配置。
配置Tomcat方法: File -> Settings -> Deployment -> Application Servers -> Tomcat Server
具体配置方法,如下图:

图-07

IDEA 必备小技能

为了提升开发效率,撸主贴心为大家准备以下实用指数五颗星的小技巧:

8. 自动编译

具体步骤:顶部工具栏 File ->Other Settings -> Default Settings -> Auto Import

说明:开启自动编译之后,结合Ctrl+Shift+F9 会有热更新效果。
图-08
自动编译(Runtime)

具体步骤: 敲击 Ctrl + Shift + Alt + / 然后进入Registry ,找到compiler.automake.allow.when.app.running ,然后勾选上。
图-09
图-10

9. 取消大小写敏感

具体步骤:
File | Settings | Editor | General | Code Completion Case | Sensitive Completion = None

取消大小敏感,在编写代码的时候,代码的自动提示将更加全面和丰富。
图-11

10. 调整字体类型和字体大小和主题

默认的白色背景和细小的字体会影响大家的编码体验,这里特意提供了调整代码窗的快捷配置。打开配置,搜索Font,然后再Font可以调整字体类型,Size可以调整字体大小,如图:
图-12

11. 将快捷键设置为跟Eclipse一样

很多人可能并不习惯IDEA的快捷键,为了方便,这里我们将快捷键设置为跟 Eclipse一样。

具体步骤: File -> Settings -> Keymap - > 选择Eclipse
图-13

12. 打开常用工具栏

具体步骤:顶部导航栏 - View -> 勾选 Toolbar & Tool Buttons

如下图所示:
图-14

13. 打开Maven神器(强烈推荐!)

具体步骤:右侧直接点击 Maven Project 管理插件 ,记得先打开常用工具栏,详见8.3。

如下图所示: 还在Eclipse使用Update命令苦苦挣扎的童鞋,请火速尝试此款插件,能给你带来前所未有的愉快感!!
图-15

14. 懒人必备快捷键

  1. 快捷键的配置,习惯了eclipse快捷键设置。(completion、close)
    File->Settings-> Keymap-> 搜索completion -> 给Basic添加快捷键为Alt+/。
    File->Settings-> Keymap-> 搜索close-> 添加快捷键为Ctrl+W。
    File->Settings-> Keymap-> 搜索Reformat Code-> 添加快捷键为Ctrl+Shift+F。

  2. 快捷键的配置,习惯了Navicat Premium数据库管理工具的使用(open console、execute)
    File->Settings-> Keymap-> 搜索open console-> 添加快捷键为Ctrl+Q。
    File->Settings-> Keymap-> 搜索execute-> 添加快捷键为Ctrl+R。

  3. 按【鼠标中键】快速打开智能提示,取代alt+enter 。
    File->Settings-> Keymap-> 搜索 Show Intention Actions -> 添加快捷键为鼠标中键。

  4. 按【F2】快速修改文件名,告别双手操作。
    File->Settings-> Keymap-> 搜索 Rename -> 将快捷键设置为F2 。

  5. 按【F3】直接打开文件所在目录,浏览一步到位。
    File->Settings-> Keymap-> 搜索 Show In Explorer -> 将快捷键设置为F3 。

  6. Ctrl+ E 来找到最近访问的文件和Ctrl+ Shift + E 来访问最近编辑的文件

  7. Ctrl+ F 进行相应的搜索
    File->Settings-> Keymap-> 搜索 find -> 将快捷键设置为Ctrl+ F

  8. Ctrl+ 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 。

  1. Maven自动下载源码包,告别反编译,直接上源码注释!!

File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven -> Importing

将Automatically Download 的 Source 勾上。

  1. 找回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 即可快速关闭当前项目; 示例:

什么?你还是想要干掉整个目录?那也阔以,右键Show In Explorer ,删掉文件夹即可。不过笔者建议还是直接Close关掉就好啦,万一以后用得上呢,你说呢?
图-16

(3)如何在单个窗口打开多个Maven工程啊?
答:随便新建一个文件夹,然后将工程都扔进去,使用IDEA打开这个文件夹。
(4)如何为当前项目工程添加多个模块啊?
答: 对着工程右键 -> 选择New -> Module -> 通常选择Spring Initializr ,如图:
图-17
图-18

Intellij IDEA 一些不为人知的技巧

无处不在的跳转

  1. 项目直接的跳转(next project window、previous project window)
  2. 文件直接的跳转(Ctrl+E)
  3. 浏览修改位置的跳转
  4. 书签标记的跳转(bookmarks)
  5. 收藏位置和文件(add to favorites)

精准搜索

  1. 精准搜索类()
  2. 精准搜索文件()
  3. 精准搜索符号,即搜索属性、函数()
  4. 精准搜索全局字符串()

代码小助手

  1. 列操作()
  2. live template(常用设置:main、psfi、psfs、pi、ps)
  3. postfix(for、sout、field、return、nn)
  4. alter+enter(自动创建函数、list replace、字符串format或build、实现接口、单词拼写、导包)

编写高质量代码

  1. 重构(变量重构、方法重构)
  2. 抽取(抽取变量、抽取静态变量、抽取成员方法,抽取方法参数、抽取函数)

寻找修改轨迹

  1. git的集成(annotate、移动所以改动之处previous change)
  2. local history

关联一切

  1. spring的关联
  2. 关联数据库

调试程序

  1. 断点调试(添加断点、单步运行F8、F9、查看所以断点、禁止所以断点、条件断点、表达式求值)

run anywhere if you can

文件操作

  1. 在当前文件夹同一级目录下面新建一个文件(Ctrl+Alt+Ins)
  2. 复制当前文件(Ctrl+Shift+Alt+t)
  3. 复制当前文件(Shift+Alt+v)

文本操作

  1. 复制简单文件名
  2. 复制完整路径文件名
  3. 多文本复制(Shift+Ctrl+v),访问历史粘贴板。

结构图

  1. 查看当前field、method大纲。(Ctrl+o)
  2. 查看maven依赖图和类图。(Ctrl+Alt+Shift+u)
  3. 查看类继承结构,方法调用层次。

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 来进行访问历史粘贴板。

类结构图

可以查看类图结构


图-19

总结

插件配置

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

推荐阅读更多精彩内容