IDEA 的一些使用总结

年初也转投 IDEA 阵营了,相比 Eclipse 确实顺畅很多,尤其是多开项目的时候,已经有种回不去的感觉了。这里介绍一些两个 IDE 之间的区别。

版本选择

首先是 IDEA 版本的选择,建议使用 Community 社区免费版即可,对比 Ultimate 收费版并无太大区别。都支持 Java、Maven、Git 等基本功能。但社区版会少了一些插件,例如 Spring Initializr。

版本区别详见:https://www.jetbrains.com/idea/features/editions_comparison_matrix.html

创建项目

其次创建项目,需要了解 IDEA 的 Project 和 Module 两个概念:

  • IntelliJ 系中的 Module 相当于 Eclipse 系中的 Project;
  • IntelliJ 系中的 Project 相当于 Eclipse 系中的 Workspace。可以选择创建一个 Empty project without modules,之后再放入同一类型的 module 集合,此时只会生成一个 .idea 目录。也可以选择直接创建某一类型的 Project,如 Maven Project,此时需要添加 Maven 项目信息,完成后会生成 pom.xml、src 目录、*.iml。

最后尝试新建一个 HelloWorld 示例项目,.idea 文件夹和 HelloWorld.iml 是 IDEA 帮助我们建立的辅助文件夹和文件,类似于 Eclipse 在我们的 Workspace 下建立的 .settings 文件夹和 .classpath.project 文件。

IDEA Hello World

Project 作为工作空间可以自由切换、多开,从 File > Open Recent 中选择即可。

配置 Tomcat

1、下载 Tomcat

2、IDEA 新建 Tomcat(Run > Edit Configurations)

add_new_tomcat_server_config

3、新建完毕,配置本地 Tomcat 安装目录:

tomcat_server_config

4、配置端口号、必要的 VM options:

tomcat_server_config2

5、配置运行项目,配置上下文:

deployment

创建 java/resource 目录

Ctrl+Alt+Shift+S,打开 Project Structure > Modules:

Project Structure > Modules

场景演示

以特性开发与合版这个场景为例,看下如何利用 IDEA 完成整个流程:

特性开发

第一步,本地建一个工作目录,以特性名称命名:

1
$ mkdir feature-xxx

第二步,从远程仓库 clone 该特性涉及的所有模块到该工作目录:

1
2
3
$ cd !$
$ git clone module1
$ git clone moduleN

第三步,新建 Project。打开 IDEA,File > New > Project from Existing Sources… > 选择该工作目录,并按如下操作:

Import Module

Import Module

第四步,开始特性开发,批量从 master 分支 checkout 创建出特性分支 feature-xxx。并批量修改 pom.xml 的版本号:

new_branch

特性合版

第一步,项目管理员创建发布分支,根据本次发布周期涉及的所有特性,批量从 master 分支 checkout 创建出发布分支 release-xxx(操作同上)。该操作只能由项目管理员操作,因为 release-* 是受保护分支。

第二步,升级 pom.xml 版本号并推送。

第三步,批量 merge 特性分支:

merge_into_current

第四步,解决冲突(例如 pom.xml 版本号冲突、代码冲突,如有):

conflicts

version_control_local_changes

第五步,合版完毕,Ctrl+K 批量提交并推送到远程分支 release-xxx 即可。

全局配置

File > Other Setting > Default Settings

全局配置 IDE 的界面、编辑器、VCS、构建、终端等

File > Other Setting > Default Project Structure

全局配置项目的 SDK 版本、类库等。

JDK

File > Other Setting > Default Settings,Projects SDK 可控制全局版本,Language Level 可控制语言级别,方便使用其特性。配置后全部 project modules 都会生效。

Maven

File > Other Setting > Default Settings > Build, Execution, Deployment > Build Tools > Maven

  • 可配置 Maven home directoryUser settings file (自定义 setting.xml)、Local repository 本地仓库。

  • 自动下载源码:Importing,找到Automatically download 并勾选 SourcesDocumentation,然后 reimport 即可。

Terminal

File > Other Setting > Default Settings > Terminal,修改 Shell path 为:D:\Developer\PortableGit\bin\sh.exe,可配置 Terminal 终端为 GitBash。

Layout

调整完当前窗口的布局之后,可以保存当前的窗口布局,以便全局生效:Window > Store Current Layout as Default

Code Template

File > Other Setting > Default Settings > 搜索 File and Code Templates,打开 Includes > File Header,配置:

1
2
3
4
5
6
7
8
/**
* <p>
*
* </p>
*
* @author abc@xyz.com
* @since ${DATE}
**/

Auto Import

File > Settings > Editor > General > Auto Import,然后勾选:

Add unambiguous imports on the fly:快速添加明确的导入。

Optimize imports on the fly:快速优化导入,优化的意思即自动帮助删除无用的导入。

Quick documentation

File > Settings > Editor > General > 开启 Show quick documentation on mouse move,可用于鼠标放到类、方法、变量上时显示完整 java doc 注释

Show tabs in one row

File > Settings > Editor > General > Editor Tabs,去掉勾选 Show tabs in one row

字体

老版本可以安装 JetBrains Mono 字体,v2019.3 版本后自带。

插件

官方插件(内置):

  • Maven Integration:官方 Maven 插件,参考:IDEA Maven 插件
  • JUnit:快速创建、运行、查看单元测试,在单元测试和目标之间跳转。

官方插件(需安装):

  • IdeaVim:Vim 程序员必装。
  • NodeJS:运行前端项目、or 构建前端项目时都是需要的。

规范类:

代码生成类:

  • Lombok Plugin:用于精简冗余代码,必装。
  • Builder-Generator:如果项目可以使用 Lombok,就不必装。

MyBatis:

  • MyBatis Plugin:最强大的 MyBatis 插件,不过是收费版。
  • Free MyBatis plugin:免费的 MyBatis 插件,提供了一些基本的跳转和代码生成功能。
  • MyBatis Log Plugin:把 MyBatis 输出的 SQL 日志还原成完整的 SQL 语句。将日志输出的 SQL 语句中的问号 ? 替换成真正的参数值。

辅助类:

  • Maven Helper:方便查询依赖树及排除依赖
  • Grep Console:Grep, tail, filter, highlight… everything you need for a console. Also can highlight the editor - nice for analyzing logs…
  • SequenceDiagram for IntelliJ IDEA:查看类调用时序图
  • Rainbow Brackets:彩色括号
  • HighlightBracketPair:高亮提示括号的开始结尾

其它:

IdeaVim 如果与原 IDEA 快捷键冲突,可以修改如下:

IdeaVim

如果被墙导致无法连接到 Marketplace 或插件无法下载,可以配置如下:

IDEA 无法下载插件

Git

分支管理

git branch management

分支操作 对应命令
Checkout git checkout [selected-branch]
New Branch from Selected… git checkout -b [new-branch] [selected-branch]
Checkout and Rebase onto Current git rebase HEAD [selected-branch]
Rebase Current onto Selected git rebase [selected-branch]
Merge into Current git merge [selected-branch]
Delete git branch -d [selected-branch]

快捷键

自定义 keymap

自定义快捷键,例如我配置了:

功能 快捷键
Close Alt+W
Hide All Tool Windows Alt+M
Delete Line Alt+D
Redo Ctrl+Y
Rename Alt+R
Completion Alt+/

VCS

Git 自定义快捷键:

功能 快捷键
Reset HEAD Ctrl+Alt+Q
Annotate(git blame) Ctrl+Alt+1
Compare with the Same Repository Version Ctrl+Alt+2
Show History Ctrl+Alt+3
Commit File Ctrl+Alt+4
PULL Ctrl+Alt+5

Git 默认的其它命令:

功能 快捷键
Add Ctrl+Alt+A
Revert Changes 回退更改 Ctrl+Alt+Z
Commit Changes 提交更改 Ctrl+K
Push Commits 推送 Ctrl+Shift+K
Update Project(批量 git pull) Ctrl+T

创建类

Alt + Insert 创造万物

查找/替换类

Ctrl + F 在当前文件中查找(关键字)

Ctrl + R 在当前文件中替换(关键字)

Ctrl + Shift + F 在路径中查找(关键字)

Ctrl + Shift + R 在路径中替换(关键字)

浏览类

Ctrl+N 查找类

Ctrl+Shift+N 查找文件

Shift+Shift 查找所有(包括类、资源、配置项、方法等等)

Ctrl+E 最近打开的文件

Alt+F7 查找引用(Find Usage)

Ctrl+Shift+Backspace 回到上次修改的地方

Ctrl+Alt+Left/Right 返回/前进至上次浏览的位置

Ctrl+鼠标左键:打开接口(Declaration)

Ctrl+Alt+鼠标左键:打开实现(Implementation(s))

Ctrl+H 打开类层次窗口(继承关系)

Ctrl+F12 查看当前类的所有方法

Ctrl+Alt+U 类关系图、Maven关系图

编辑类

Ctrl+D 复制行

Ctrl+Y 删除行

Alt+Shift+向上箭头 Move Line Up

Alt+Shift+向下箭头 Move Line Down

Ctrl+Shift+U 大小写转换

Ctrl+Alt+L 格式化代码

Ctrl+W、Ctrl+Shift+W 这个动作的实际操作是选中更上一层的语法结构。例如,如果你在一个字符串的一个单词中,按一下Ctrl+W,会选中光标所在单词。再按一下,会选中整个字符串的内容,不包括引号。再按一下,会选中包括引号的字符串。再按一下,会选中整个表达式(如果表达式含有括号,会逐层选中)。再按一下,会选中整个语句块。再按一下,会选中整个方法。再按一下,会选中整个类。

重构类

// Ctrl+Alt+Shift+T 重构菜单

// Ctrl+f6 修改类\方法签名
https://www.jetbrains.com/help/idea/change-class-signature.html

// F6 Move 类、方法、变量移动

// Ctrl+Shift+f6 重构变量的类型

// Shift+f6 重命类、方法、变量

// Ctrl+Alt+C 提取常量
// Ctrl+Alt+V 提取变量
// Ctrl+Alt+F 提取成员变量
// Ctrl+Alt+P 提取方法入参

// Refactor | Generify 泛型自动补全
// Refactor | Invert Boolean 布尔类型取反
// Refactor | Make Static 将类、方法设置成静态
// Refactor | Find and Replace Code Duplicates

// Safe Delete 安全删除

// Ctrl+Alt+M 方法提取
// Ctrl+alt+N 方法内联(变量\方法\构造函数)
https://www.jetbrains.com/help/idea/inline.html

// Pull Members Up 将方法提升到父类
// Pull Members Down 将方法推迟到之类

调试类

调试:F7/F8/F9 分别对应 Step into,Step over,Continue。

运行:Alt+Shift+F10 运行程序,Shift+F9 启动调试,Ctrl+F2 停止。

总结

IDEA 快捷键

摘录 10 个最常用的快捷键:

Top #10切来切去:Ctrl+Tab

Top #9选你所想:Ctrl+W

Top #8代码生成:Template/Postfix +Tab

Top #7发号施令:Ctrl+Shift+A

Top #6无处藏身:Shift+Shift

Top #5自动完成:Ctrl+Shift+Enter

Top #4创造万物:Alt+Insert

Top #3智能补全:Ctrl+Shift+Space

Top #2自我修复:Alt+Enter

Top #1重构一切:Ctrl+Shift+Alt+T

参考

下载地址:
http://www.jetbrains.com/idea/download/#section=windows

插件:
https://plugins.jetbrains.com/idea

常用插件推荐

IDEA 重构官方文档:
https://www.jetbrains.com/help/idea/refactoring-source-code.html

IDEA 高级调试技巧:

http://www.mamicode.com/info-detail-1761996.html