IDEA是程序员用的最多的开发工具,很多程序员想把它打造成一站式开发工具,于是安装了各种各样的插件。通过插件在IDEA中完成各种操作,无需安装其他软件,确实很方便!今天给大家分享下我平时常用的IDEA插件,个个是精品!
SpringBoot实战电商项目mall(50k+star)地址:https://github.com/macrozheng/mall
Key Promoter X
Key Promoter X 是一款帮助你快速学习IDEA快捷键的插件,当你在IDEA中用鼠标点击某些功能时,它会自动提示你使用该功能的快捷键。它能让你更轻松地摆脱使用鼠标功能,从而只使用键盘来开发,这大概是刚开始使用IDEA的程序员最需要的插件了。
当我们使用鼠标完成某些工作时,Key Promoter X会提示对应的快捷键,方便我们更快地掌握IDEA的快捷键。
Lombok
Lombok目前已经是开发Java应用的标配了,不仅SpringBoot默认支持它,连IDEA也内置了Lombok插件,无需安装即可使用。Lombok是一款Java代码功能增强库,通过Lombok的注解,你可以不用再写getter、setter、equals等方法,Lombok将在编译时为你自动生成。
举个例子,当我们给一个类添加@Getter和@Setter注解后;
/**
* 修改订单费用信息参数
* Created by macro on 2018/10/29.
*/
@Getter
@Setter
public class OmsMoneyInfoParam {
@ApiModelProperty("订单ID")
private Long orderId;
@ApiModelProperty("运费金额")
private BigDecimal freightAmount;
@ApiModelProperty("管理员后台调整订单所使用的折扣金额")
private BigDecimal discountAmount;
@ApiModelProperty("订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单")
private Integer status;
}
Lombok就会为我们自动生成所有属性的Getter和Setter方法,无需我们再手写,具体使用可以参考Lombok的使用 。
MyBatisX
MybatisX是一款基于IDEA的快速开发插件,由MyBatis-Plus团队开发维护,提示很全功能也很强大。支持xml和Mapper接口之间的跳转,自带图形化的代码生成器,可以通过类似JPA的方式,直接根据方法名称生成SQL实现。
我们点击Mapper接口方法左侧的图标可以直接跳转到xml中对应的SQL实现,在xml点击左侧图标也可以直接跳转到Mapper接口中对应的方法。
当我们创建符合JPA规范的方法时,能直接生成SQL实现无需手写,MyBatisX的功能很强大,详细使用可以参考MybatisX插件的使用 。
RestfulFastRequest
RestfulFastRequest号称是IDEA版本的Postman,它是一个功能强大的Restful API工具包插件,可以根据已有的方法快速生成接口调试用例。它有一个漂亮的界面来完成请求、检查服务器响应、存储你的API请求和导出API请求,该插件能帮助你在IDEA内更快更高效地调试API!
下面是使用RestfulFastRequest调试API接口的一张效果图,用起来还是非常方便的,具体使用可以参考RestfulFastRequest插件的使用 。
PlantUML
PlantUML是一款开源的UML图绘制工具,支持通过文本来生成图形,使用起来非常高效。可以支持时序图、类图、对象图、活动图、思维导图等图形的绘制。
下面使用PlantUML来绘制一张流程图,可以实时预览,速度也很快,具体使用可以参考PlantUML插件的使用 。
SequenceDiagram
SequenceDiagram是一款能根据代码生成时序图的插件,还支持在时序图上直接导航到对应代码以及导出为图片或PlantUML文件。
下面是一张使用SequenceDiagram制作的时序图,还是非常不错的,具体使用可以参考SequenceDiagram插件的使用 。
GsonFormatPlus
一款能根据JSON字符串自动生成实体类的插件,支持Lombok。
选择类名,右键生成,输入JSON字符串即可快速生成对应实体类。
Json Parser
一款简单小巧的JSON格式化插件,还在使用在线工具格式化JSON?试试这款IDEA插件吧!
直接打开右侧面板,输入JSON字符串即可快速格式化,支持折叠显示。
String Manipulation
一款专业处理字符串的插件,支持各种格式代码命名方式的切换、支持各种语言的转义和反转义、支持字符加密、支持多个字符的排序、对齐、过滤等。总之功能很强大,有需要字符串操作时,可以试试它。
选中需要处理的字符串,右键打开菜单即可开始使用。
MapStruct support
MapStruct是一款基于Java注解的对象属性映射工具,使用的时候我们只要在接口中定义好对象属性映射规则,它就能自动生成映射实现类,不使用反射,性能优秀。
当我们使用它的IDEA插件时,他能自动提示映射对象所包含的属性,并且在点击属性时能跳转到对应属性,具体使用可以参考MapStruct的使用 。
Alibaba Java Coding Guidelines
阿里巴巴《Java 开发手册》配套插件,可以实时检测代码中不符合手册规约的地方,助你码出高效,码出质量。
比如说手册里有这么一条:
当我们违反手册规约时,该插件会自动检测并进行提示。
同时提供了一键检测所有代码规约情况和切换语言的功能。
如果你想修改某条规约的检测规则的话,可以通过设置的Editor->Inspections
进行修改。
Alibaba Cloud Toolkit
CloudToolkit是阿里出品的一款IDEA插件,通过它我们可以更方便地实现自动化部署,其内置的终端工具和文件上传功能,即使用来管理服务器也非常方便!这款IDEA插件不仅功能强大,而且完全免费!
配置好服务器后,通过它可以一件打包上传到服务器,然后自动执行指定的脚本。
其内置了一个终端工具,提示还挺全的,如果你想在IDEA里管理Linux服务器,不妨可以试试,具体使用可以参考CloudToolkit插件的使用 。
arthas idea
基于IDEA开发的Arthas命令生成插件,支持Arthas官方常用的命令,比如 watch、trace、ognl static、ognl bean method、field、monitor、stack 、tt等命令。
直接打开右键菜单,选择Arthas命令即可快速生成命令,具体使用可以参考Arthas使用教程 。
Docker
IDEA官方提供的Docker插件,已内置,支持远程Docker环境的镜像和容器管理,同时支持使用Docker Compose实现批量部署。
通过它能自动打包应用的镜像,jar包会直接上传到远程服务器并打包成镜像,具体使用可以参考IDEA官方Docker插件的使用 。
Maven Helper
解决Maven依赖冲突的好帮手,可以快速查找项目中的依赖冲突,并予以解决!
我们可以通过pom.xml
文件底部的依赖分析
标签页查看当前项目中的所有依赖。
通过冲突
按钮我们可以筛选出所有冲突的依赖,当前项目guava
依赖有冲突,目前使用的是18.0
版本。
选中有冲突的依赖,点击Exclude
按钮可以直接排除该依赖。
同时pom.xml
中也会对该依赖添加
标签,是不是很方便啊!
Grep Console
一款帮你分析控制台日志的插件,可以对不同级别的日志进行不同颜色的高亮显示,还可以用来按关键字搜索日志内容。
当项目打印日志的时候,可以发现不同日志级别的日志会以不同颜色来显示。
如果你需要修改配色方案的话,可以通过Tools
打开该插件的配置菜单。
然后通过配置菜单修改配色方案。
可以通过在控制台右键并使用Grep
按钮来调出日志分析的窗口。
然后直接通过关键字来搜索即可。
Markdown
IDEA官方出品的一款Markdown插件,支持编辑Markdown文件并进行预览,对于习惯了使用IDEA的小伙伴还是非常方便的。
使用它来编辑Markdown文件最方便的地方在于,可以直接使用IDEA提供的各种快捷键,无需适应一套新的快捷键。
Translation
一款翻译插件,支持Google、有道、阿里、百度翻译,对我们看源码时翻译注释很有帮助!
直接选中需要翻译的内容,点击右键即可找到翻译按钮;
直接使用翻译文档
可以将整个文档都进行翻译;
还可以通过右上角的翻译按钮直接翻译指定内容。
Statistic
一款代码统计工具,可以用来统计当前项目中代码的行数和大小。
我们可以通过顶部菜单中的View->Tool Windows->Statistic
按钮开启该功能。
此时就可以看到我们项目代码的统计情况了,比如我的开源项目mall
中java
代码大小为2818kB
,行数为85645
。
Vue.js
Vue.js支持插件,写过前端的朋友肯定用过,可以根据模板创建.vue
文件,也可以对Vue相关代码进行智能提示。
启用该插件后,可以根据模板新建.vue
文件。
当我们在标签中写入以v-
开头的代码时,会提示Vue中的相关指令。
总结
以上是我常用的20款IDEA插件,涵盖了大部分应用场景,平时开发的时候基本上也够用了。不过IDEA插件虽然能增强它的功能,给我们提供一站式的开发体验,但是也不要安装过多,太多了容易卡!