一、前言
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具。
不是我说的喔,百度百科说的… IDEA 如此好用,插件库也是很强大的,俗话说:“工欲善其事必先利其器”,不安排几个插件都不好意思说你开发工具用的是 IDEA ,接下来将介绍插件的安装方式。
二、IDEA 插件安装
在使用插件之前,你需要了解 IDEA 的插件安装方式,安装 IDEA 插件是非常方便的,你只要知道插件的名字就可以直接安装, IDEA 插件安装有两种方式:
1、在线安装
在 IDEA 中选择:File —> Settings —> Plugins
你可以直接在开发工具输入插件的名字搜索安装,例如安装Lombok插件:
2、离线安装
进入 IDEA 下载插件官网:https://plugins.jetbrains.com,输入插件的名字搜索,下载插件对应 IDEA 版本的插件包
在 IDEA 中选择:File —> Settings —> Plugins —> Install plugin from disk —> 选择下载好的插件包进行安装
TIP: 安装完成之后,重启 IDEA 就行了。本文使用的 IDEA 版本为2020.1,IDEA 使用最新版本的话,可能对应的第三方插件的版本没跟上导致不能使用。熟悉完插件安装方式之后,接下来将介绍近二十余款常用的 IDEA 插件
三、插件
1、Lombok
Lombok 项目是一个 Java 库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类,使用 Lombok 时候需要安装 Lombok 插件和对应依赖
使用 Lombok 时候需要添加依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
更多Lombok用法查看:https://projectlombok.org
2、RestfulTool
一套 Restful 服务开发辅助工具集。
- 提供了一个 Services tree 的显示窗口
- 点击 URL 直接跳转到对应的方法定义
- 一个简单的 http 请求工具
- 支持 Spring 体系 (Spring MVC / Spring Boot)
- 支持 JAX-RS
- 支持
Navigate->RequestService
搜索 Mapping (Ctrl + Alt + /)
TIP: RestfulToolkit 插件与 RestfulTool 插件功能类似,只是 RestfulToolkit 在 IDEA 2020.1 以后作者未更新,不能使用了,但是在 IDEA 2019.3.5可以使用,在 IDEA 2020.1 版本以后可以装 RestfulTool 插件,且该插件只支持 IDEA 2020.1+ 。
3、Free Mybatis plugin
IDEA 默认不能直接从代码跳转到映射器,该插件是一款增强 IDEA 对 mybatis 支持的插件,主要功能如下:
- 生成mapper xml文件
- 快速从代码跳转到mapper及从mapper返回代码
- mybatis自动补全及语法错误提示
- 集成mybatis generator gui界面
注:可以选备用插件MybatisX,功能类似,也可以选择更强大Easycode,支持代码跳转,并且支持代码生成
4、Mybatis Log Plugin
该插为收费版,试用版为30天,该插件主要功能:
- 该插件可以还原MyBatis输出的日志为完整的SQL语句
- 把SQL日志里面的?替换为真正的参数值
- 选中要还原的MyBatis日志,右键点击菜单Restore Sql,还原SQL语句
- Java接口方法与Mapper xml文件互相跳转
安装完插件之后,重启可以点击试用:
演示:
可以看到 MyBatis 打印的日志SQL被自动的格式化成可执行的SQL了,如果业务中打印的SQL很多影响你查看,你也可以选择手动格式化指定SQL
5、Grep Console
在启动应用时或调试时,IDEA 控制台输出一大堆日志,想要快速找到自己需要类型的日志是很麻烦的,此时使用此插件可以快速定位到自己想要的类型日志,比如 TRACE 、 DEBUG 等,也可以单独打开标签页显示自己需要的日志,日志分类也可以配置自己喜欢的颜色。
6、Maven Helper
查看和管理maven依赖的插件,可以展示pom.xml文件中的依赖以列表或树的形式,该插件可以很直观的帮你分析和排除冲突依赖
7、GenerateAllSetter
一款效率插件,它主要提供以下功能:
- 通过alt+enter对变量类生成对类的所有setter方法的调用
- 当两个对象具有相同的字段时生成一个转换器
- 当返回类型为List Set Map时生成默认值
- 在所有getter方法上生成对assertThat的调用
8、Rainbow Brackets
如果代码没有被格式化的话,阅读起来很痛苦,就算被格式化了,几千行代码,各种if嵌套,阅读起来连个结尾括号都找不到(如果你说你会折叠,当我没说),也是很痛苦的,此时这个插件就能忙上很大的忙,能帮你快速定位到代码块中的上下文,突出显示,彩虹括号。
使用:
1、Ctrl+右键单击,高亮显示所选代码块
2、Alt+右键单击,其他全部为灰色,突出显示选中代码块
更多使用可以参考 github 地址:https://github.com/izhangzhihao/intellij-rainbow-brackets
9、Json
9.1、Json Helper
该插件提供了一个易于使用的工具窗口,可以直接在您的IDE中执行JSON字符串操作,不用再打开网站格式化JSON啦,该插件提供了如下功能:
- 美化您的丑陋json
- 丑化你漂亮的json
- 转义你的json
- 解除转义json
- 支持JMES json路径搜索。请参阅此处的示例:https://jmespath.org/
- 对变量声明解析的实验支持。例如public final String json = “{“key”:“value”}”;变成原始的美化json
- Json检查允许嵌套json。也适用于JSON临时文件
9.2、FlutterJsonBeanFactory
FlutterJsonBeanFactory是用来生成dart的json实体类和根据配置生成factory的idea全家桶的插件。
使用说明
- 项目目录右键new,会有个dart bean class file from json,点击这个选项
- 弹出一个输入类名和和json串的弹框,例:填入类型abc和json串
详细参考:https://www.jianshu.com/p/14cbcbaa74b7
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VFaVh7eF-1601278777187)(https://plugins.jetbrains.com/files/11415/screenshot_20773.png)]
注:JSON To Kotlin Class (JsonToKotlinClass) 为Json转类的备用选择
9.3、RoboPOJOGenerator
将JSONObject格式的String解析成实体类,这个插件的更新频率比较快
File-> new -> Generate POJO from JSON
然后将JSON格式的数据粘贴进去之后,配置相关属性之后选择“Generate”
10、CodeGlance
CodeGlance 插件在编辑器窗格中嵌入一个类似于在Sublime中的代码缩略图。使用自定义的颜色突出显示语法,可同时处理浅色和深色主题,可以快速定位代码,使用起来比拖动滚动条方便多了。
11、SequenceDiagram
SequenceDiagram 插件可以根据代码调用链路自动生成时序图,这对梳理工作中的业务代码有很大的帮助,堪称神器,暴赞!
TIP:双击顶部的类名可以跳转到对应类的源码中,双击调用的方法名可以直接跳入指定方法的源码中
12、Alibaba Java Coding Guidelines、SonarLint、CheckStyle
12.1、Alibaba Java Coding Guidelines
阿里巴巴代码规范约束插件,对代码规范等很有帮助,可以养成良好的代码规范,编程风格
扫描整个项目:
扫描代码后,将不符合规约的代码按 Blocker(崩溃)、Critical(严重)/Major(重要) 三个等级显示在下方,双击可以定位至代码处,右侧窗口还有针对代码的批量修复功能。
如果觉得扫描整个项目太浪费时间且影响性可以能扫描单个文件:
TIP:阿里编码规约扫描,默认是开启实时监测的,此功能可能会引起 IDEA 卡顿,可以点击 关闭实时检测功能
将其关闭,在编码完成后再主动扫描文件。
12.2、SonarLint
SonarLint 是一个免费的IDE扩展,允许您在编写代码时修复错误和漏洞!与拼写检查器一样,SonarLint会动态地突出显示代码问题,并提供明确的修复指导,以便在代码提交之前修复这些问题。在流行的IDEs(Eclipse, IntelliJ, Visual Studio, VS Code)和流行的编程语言,SonarLint 帮助所有开发人员编写更好、更安全的代码!
区别:
这两款插件的侧重点不同:
-
AlibabaJavaCodingGuidelines
插件比较关心的是代码规范,编码风格上的,例如,命名规范,注释,代码行数等 -
SonarLint
插件比较关心代码正确性,存在的问题,风险,漏洞等,例如,重复代码,空指针,安全漏洞等
使用 AlibabaJavaCodingGuidelines
插件来规范代码,使用 SonarLint
来提前发现代码问题,配合起来提高工程整体的代码质量,并且能够在编码阶段规避风险,提高程序的健壮性。
12.3、CheckStyle:代码格式检查
这个插件的作用主要是为了规范代码格式比如说项目中一行代码最长是多少、项目中有没有无用的引用等等。非常实用!
一般情况下我们会在项目中配置 CheckStyle,并且自定义规则,然后再配置一个Commit 的 Git 钩子,这样我们在Commit代码的时候就会跑一遍 CheckStyle,看看项目代码的格式有问题不。
这个插件的作用主要是帮助我们定位问题,示例如下:
我们使用一个自定义的规则,然后运行 CheckStyle ,可以看到这个插件就帮我们找到有一个无用的 import。
13、Translation
一款翻译插件,再也不用切换窗口到浏览器或翻译软件中搜索了,也可以通过 TranslateandReplace
汉字翻译为驼峰命名的英语,在定义方法名或属性变量时很方便。
14、Activate-power-mode-x 和 Power mode II
这两款插件提供了写代码时的动态效果。
14.1、Activate-power-mode-x
Activate-power-mode-x 是 Activate-power-mode 插件的修复版本,在此上面迭代更新了几个可配置的选项。
14.2、Power mode II
区别:
- activate-power-mode-x 颗粒特效默认是白色的,可以调整其他颜色,但是颗粒特效颜色单一,编辑框也跟着抖动,有点晃眼哇
- Power mode II 各种颜色的颗粒,默认编辑框不跟着抖动,视觉舒服点(由于 IDEA 2020.1 版本为2020/4/9更新的,Power mode II 最后一次更新为2020/2/17,所以到配置选项框无法显示配置选项,可能由于插件版本没跟上的问题)
15、Background Image Plus
该插件将编辑器背景设置为指定文件夹中的随机图片
16、Nyan progress bar
该插件将你 IDEA 中的所有的进度条都变成小猫动画,小猫可以跟着进度条变化而移动喔。
IDEA 插件仓库中还有很多优秀的插件,没有最好的只有更适合的,其他插件慢慢探索吧。
17、Codota
Codota 这个插件用于智能代码补全,它基于数百万Java程序,能够根据程序上下文提示补全代码。相比于IDEA自带的智能提示来说,Codota 的提示更加全面一些,如下图所示。
我们创建线程池现在变成下面这样:
上面只是为了演示这个插件的强大,实际上创建线程池不推荐使用这种方式, 推荐使用 ThreadPoolExecutor
构造函数创建线程池。阿里巴巴的插件-Alibaba Java Code Guidelines 就检测出来了这个问题,所以,Executors
下面用波浪线标记了出来。
除了,在写代码的时候智能提示之外。你还可以直接选中代码然后搜索相关代码示例。
Codota 还有一个在线网站,在这个网站上你可以根据代码关键字搜索相关代码示例,非常不错!我在工作中经常会用到,说实话确实给我带来了很大便利。网站地址:https://www.codota.com/code ,比如我们搜索 Files.readAllLines
相关的代码,搜索出来的结果如下图所示:
Codota 插件的基础功能都是免费的。你的代码也不会被泄露,这点你不用担心。
18、GenerateserialVersionUID
实体对象实现了java.io.Serializable接口后,一般都会提供一个serialVersionUID以做版本区分。在idea里,可以通过GenerateserialVersionUID插件设置来快速生成serialVersionUID。
18.1、安装GenerateserialVersionUID插件
18.2、配置Idea为检查序列化ID
注意:必须勾选第三和第四个选项!
18.3、在类名或者Serializable关键字上使用快捷键[Alt+Insert],弹出框选择SerialVersionUID