本文共计 1.5 W 字,80 张图介绍 IDEA 中令人相见恨晚的技巧,本文中从入门、简单项目创建开始,介绍 IDEA 中多光标操作、常用配置、插件、版本控制等等。一定包含你在别的文章没有看到的内容,对了,我把全网 IDEA 相关的优质内容聚合了起来,放在了 GitHub 上,仓库名为:awesome-IntelliJ-IDEA,欢迎给个 Star!
地址:github.com/xiaoxiunique/awesome-IntelliJ-IDEA
提醒一下,本片文章太长,预计阅读时间 30 min,建议转发后再看。本文章目录如下:
1. 创建项目
-
创建项目
-
创建包、Class
-
编码
-
打包
-
...
2. 操作基础
-
光标操作
-
数列光标
-
行尾添加光标
-
指定位置添加光标操作
-
格式批量调整
-
批量添加属性注释
-
提取 Json 字段信息
3. IDEA 常用快捷键
4. IDEA 常用设置
-
新窗口的形式打开多个项目
-
编码问题
-
设置编译器
-
设置类注释
-
自动导包
-
内存使用量展示
-
开启悬浮提示
-
修改字体大小
-
显示多行 Tab
-
设置字体、行距
-
GIT 配置
-
MAVEN 配置
-
…
5. IDEA 常用插件
-
AlibabaCloudToolkit
-
Git Flow
-
PlantUML
-
Rainbow Brackets
-
Alibaba Java Coding Guidelines
-
翻译插件
-
mybatis 插件
-
IntelliJ Lombok plugin
-
GenAllSetter
-
GenDaoCode
-
CodeGlance
-
RestfulToolkit
-
Grep Console
-
MyBatis Log Plugin
-
GsonFormat
-
VisualVm Launcher
-
jclasslib bytecode viewer
-
Codota
-
Auto filling Java call arguments
-
Rainbow Brackets
-
SequenceDiagram
-
Java Stream Debugger
-
Ace Jump
6. IDEA 好看字体
-
Consolas
-
JetBrainsMono
7. 版本控制
-
查看每一行代码的条件人, 提交时间
-
克隆远程代码
-
拉取远程代码
-
将暂存区代码提交到本地库
-
将本地库 提交到远程库
-
切换分支, 或拉取远程分支
-
查看当前打开类 历史记录
-
Stash
-
Check Out
1. 创建项目
创建 package 和 class
开始编码
输出 print 方法
运行方法
将工程打包为 Jar 包
out/artifacts
文件夹,那么你将能看到 Jar 包
运行打包的应用程序,执行 Jar 就行了。
2. 操作基础
-
Windows:
Alt + J
-
Mac:
Ctrl +
G
-
Windows:
Ctrl + Shift + Alt + J
-
Mac:
Ctrl + Command + G
格式批量调整
ctrl + alt + enter 将光标移动到当前行的上一行
批量添加 Swagger 属性注释
上面介绍了一些配合鼠标使用的快捷键,还有一些常用快捷键。
ctrl + p
非常实用的快捷键, 有的时候我们自己写的方法, 或者在看一些源码时, 都非常有用
有时候在写完一行代码的时候需要添加注释, 或者为类属性添加注释的时候需要跳到当前行的上一行, 这个快捷键就非常方便
最常用的快捷键之一, 快速的查找方法
最常用的快捷键之一, 项目慢慢的变大, 文件越来越多, 每次用鼠标去找 就太低效了
快速生成 try, if
等语句
当你试用了之后, 你会爱上这个快捷键的
将当前选中的代码抽取为一个局部变量
在使用
mvc
框架的时候, 往往我们只有一个接口的实例 这个快捷键可以直接到实现类中
让代码变得优美, 是每个程序员都应该注意的事, 方便自己和他人阅读, 利人利己
idea 批量修改相同内容
有的时候数据需要批量处理, 比如, 正常来说我们的实体类, 在使用
mybatis
等逆向工程进行生成的时候, 一般属性是有注释的, 但是在针对如果我们使用了
swagger
等插件需要来显示传递实体所代表的含义的时候, 就需要我们自己一个个的去写, 就会显得异常麻烦
在写一些测试代码的时候 这个快捷键就显得特别方便
在微服务中 多个工程在一个项目中的时候, 这个方法就比较的好用, 这样就不用自己一个一个的去点省去很多没必要的操作
重新编译当前项目
当你发现有的问题 特别的奇怪, 命名表面上没问题, 但就是项目运行不了的时候, 重新编译一下获取就好了
快速的查看选中类, 选中方法的定义
有的时候我们不想进入方法内部, 或者进入类的内部查看细节, 想要在外面就探查清楚, 就可以使用此种方法
Ctrl + ~
(感叹号旁边的按键)
2.
Code Style Scheme
Keymap
(快捷键列表)
IDEA 以新窗口的形式打开多个项目
File - Settings - Appearance & Behavior - System Settings
修改 IDEA 默认编码 -> UTF-8
File - Settings - Editor - File Encodings
设置统一编译器和编译版本
File - Setting - Build - Compiler - Java Compiler
设置类注释
File - Editor- File and Code Templates
$$end$$
可以设置光标结束的位置
自动导包
File - Editor- General - Auto Import
内存使用量展示
由于日常开发时都是在公司的办公电脑上进行的,所以内存总是不够用,但是又不清楚 IDEA 具体实时的占用了多少内存。这个时候对于一些内存并不是太够的开发人员来说能看到实时的内存使用量还是比较好的
File - Settings - Appearance & Behavior
开启悬浮提示
有时候在看代码的时候,不清楚一个类具体是干什么的,就会点进去看这个类的注释,但是强大的 IDEA 是支持不用点进去就可以看到注释的以及类的相关信息的。
File - Settings - Editor - General
Ctrl+鼠标滚轴修改字体大小
IDEA 也支持向浏览器那样按住 Ctrl+鼠标滚轴来改变编辑区的字体的大小
File-->Settings-->Editor-->General。
显示多行 Tab
当我们打开的标签页多了的时候,默认的会隐藏在右侧,当我们需要的时候在右侧找到后再打开。IDEA 是支持多行显示的,这样在大屏幕的显示器上也不用总去点击右侧的去找刚才打开过的文件了
File - Settings - Editor - General - Editor Tabs
设置字体, 行距 让代码看着更舒服
File - Settings - Editor - Font
IDEA GIT 配置
File - Settings - Version Control - Git
IDEA MAVEN 配置
File - Settings - Build - Build Tools - Maven
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
自动编译
顶部工具栏 File ->Other Settings -> Default Settings -> Auto Import
取消大小写敏感
调整字体类型和字体大小
将快捷键设置为跟Eclipse一样
打开常用工具栏
5. IDEA 常用插件
Maven
打包
clean install
, 然后
copy
jar
包, 利用
ftp
工具上传
jar
包到测试服务器, 然后
kill
服务, 在启动服务
java -jar
, 有时更新频繁 这就是一件非常麻烦的事
Cloud Toolkit
是本地
IDE
插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,您可以将本地应用一键部署到云端
(ECS、EDAS 和 Kubernetes 等
)和任意服务器;并且它还内置了
Arthas
程序诊断、
Dubbo工具
、
Terminal Shell
终端和
MySQL
执行器等工具。
Deploy to Host
, 然后下方就会出现添加主机页面
Add Host
Test Connection
, 出现
Succeeded
, 点击
add
, 代表添加成功
Deploy to Host
Run
,
idea
便会, 先使用
maven
打包, 后发送到服务器的指定位置
Advanced
里面, 大家看看就知道了,
后续有时间再完善笔记吧
插件作用:集成 Git Flow 让我们更加专注在 开发 这件事上。
安装
使用
-
主分支,产品的功能全部实现后,最终在master分支对外发布;
-
只读分支,只能从release或hotfix分支合并,不能修改;
-
所有在master分支的推送应该做标签记录,方便追溯。
-
主开发分支,基于master分支克隆,发布到下一个release;
-
只读分支,feature功能分支完成,合并到develop(不推送);
-
develop拉取release分支,提测;
-
release/hotfix分支上线完毕,合并到develop并推送。
-
功能开发分支,基于develop分支克隆,用于新需求的开发;
-
功能开发完毕后合并到develop分支(未正式上线之前不能推送到远程中央仓库)
-
feature可以同时存在多个,用于团队多功能同步开发,属于临时分支,开发完毕后可以删除。
-
测试分支,feature分支合并到develop分支之后,从develop分支克隆;
-
只要用于提交给测试人员进行功能测试,测试过程中如果发现BUG在release分支修复,修复完成上线后合并到
-
develop/master分支并推送完成,做标签记录;
-
临时分支,上线后可删除。
-
补丁分支,基于master分支克隆,主要用于对线上的版本进行BUG修复;
-
修复完毕后合并到develop/master分支并推送,做标签记录;
-
所有hotfix分支的修改会进入到下一个release;
-
临时分支,补丁修复上线后可以删除;
1. 背景
安装插件安装地址:
https://plugins.jetbrains.com/plugin/7017-plantuml-integration
windows 安装
新建文件 - PlantUML File - 选择想要创建的类型
流程图
@startuml
left to right direction
actor 普通 as User
actor 审核 as Aduitor
actor 编辑 as Editor
actor 营销 as Marketing
actor 运营 as Operator
actor 管理员 as Admin
Admin --|> User
rectangle 社区 {
User -- (查看文章)
User -- (发布文章/帖子)
(帖子管理) <|-- (置顶)
(帖子管理) <|-- (审核)
(帖子管理) <|-- (推荐)
(帖子管理) <|-- (删除)
(社区运营) <|-- (帖子管理)
Operator -- (社区运营)
Aduitor -- (社区运营)
Editor -- (社区运营)
Marketing -- (社区运营)
(App 配置) <|-- (商品图片配置)
(App 配置) <|-- (启动页配置)
(App 配置) <|-- (活动 Banner)
(App 配置) <|-- (互动 Banner)
(App 配置) <|-- (商城配置)
(App 配置) <|-- (功能配置)
(App 配置) <|-- (产品配置)
(App 配置) <|-- (系统配置)
(App 配置) <|-- (新人礼包)
(App 配置) <|-- (个人中心)
(App 配置) <|-- (渠道配置)
Admin -- (App 配置)
}
@enduml
界面效果
动图
Java代码
规范插件, 可以扫描整个项目找到不规范的地方 并且大部分可以自动修复。
findbugs
强大,但是可以自动修复, 阿里巴巴 Java 编码指南插件支持。
变量驼峰命名规范
lowerCamelCase
命名风格
字符串比较提示 equals
public static void main(String[] args) {
String str = null;
if (str.equals("test")) {
System.out.println("success");
}
}
Java
时, 很有可能会犯这样的错误, 这里很明显会报空指针异常, 而在编辑器中
"test“
应该做为
equals
方法的调用方, 并给出了原因, 应为这样很容易导致空指针异常, 并给出了例子
当你的类命名不规范时
test.java
,就会出现如下提示
安装此插件后可以节约很多的开发时间, 在
mapper
层接口可以直接进入
xml
文件中
IntelliJ Lombok plugin
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
生命很宝贵, 没有必要浪费在这个重复的工作上, 尤其是如果我们使用传统的 get set 方法, 在实体类进行变更的时候, 或多添加了列, 或减少了列, 又要重新生成对应的 get set 这难道不就是浪费时间浪费生命吗?
Java 开发之 Lombok 必知必会:
GenAllSetter
按 GenAllSetter 键两次, 会为 Setter 方法生成默认值。
GenDaoCode
CodeGlance
RestfulToolkit
-
1.根据 URL 直接跳转到对应的方法定义 ( Ctrl \ or Ctrl Alt N );
-
2.提供了一个 Services tree 的显示窗口;
-
3.一个简单的 http 请求工具;
-
4.在请求方法上添加了有用功能: 复制生成 URL;,复制方法参数...
-
5.其他功能: java 类上添加 Convert to JSON 功能,格式化 json 数据 ( Windows: Ctrl + Enter; Mac: Command + Enter )。
Grep Console
MyBatis Log Plugin
GsonFormat
快速的讲一个 json转换为一个实体 安装完插件后 alt + s 放入正确的 json格式
VisualVm Launcher
jclasslib bytecode viewer
Codota
Auto filling Java call arguments
Rainbow Brackets
SequenceDiagram
Java Stream Debugger
-
AlibabaCloudToolkit
-
Git Flow
-
PlantUML
-
Rainbow Brackets
-
Alibaba Java Coding Guidelines
-
翻译插件
-
mybatis 插件
-
IntelliJ Lombok plugin
-
GenAllSetter
-
GenDaoCode
-
CodeGlance
-
RestfulToolkit
-
Grep Console
-
MyBatis Log Plugin
-
GsonFormat
-
VisualVm Launcher
-
jclasslib bytecode viewer
-
Codota
-
Auto filling Java call arguments
-
Rainbow Brackets
-
SequenceDiagram
-
Java Stream Debugger
-
Ace Jump
对比 Consolas
Consolas
字体
下载字体
-
下载后,解压文件
-
直接双击扩展名为
tff
后缀的文件
-
重启
IDEA
-
Perferences/Setting -> Editor -> Font
,选择 JetBrains Mono 确认即可
-
查看每一行代码的条件人, 提交时间(大部分人不知道)
-
克隆远程代码
-
拉取远程代码
-
将暂存区代码提交到本地库
-
将本地库 提交到远程库
-
切换分支, 或拉取远程分支
-
查看当前打开类 历史记录
-
Stash
-
Check Out
git clone origin url
git pull
git commit -m 'message'
git push
或 alt + 1 + 8
切换分支, 或拉取远程分支
ctrl + shift + `
或 alt + ~ + 7 或
alt + ~ + 4
查看项目工程历史记录
alt + ~ + 4
alt + 9
切换到
Version Control
面板 选择log
git stash //把本地的改动暂存起来
git pull //拉取远端分支(此时本地分支会回滚到上次commit的情况,新的改动都存在了stash中)
git stash pop // 将栈顶改动重新加回本地分支,就可以继续修改了,当然,如果改好了就是add,commit,push啥的。。
git stash //把本地当前改动暂存起来,此时master分支就恢复到了上次拉取时的状态
git checkout test //切换到需要改动的分支
git stash pop //将改动pop到自己当前的分支
alt + ~
加
9
Check Out
git checkout <file>
GitHub主页:https://github.com/xiaoxiunique
Java后端交流群已成立
公众号运营至今,离不开小伙伴们的支持。为了给小伙伴们提供一个互相交流的平台,特地开通了官方交流群。扫描下方二维码备注 进群 或者关注公众号 Java后端 后获取进群通道。
推 荐 阅 读 1. 抓包神器:Charles 2. Spring Boot 打包上传至 Docker 仓库? 3. 2W 字详解设计模式 4. 连夜撸了一个简易聊天室 5. 推荐一款 Java 对象映射神器
本文分享自微信公众号 - Java后端(web_resource)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。