idea下载插件有两种方式:一是直接在插件中心下载,
Preferences—>Plugins—>查找所需插件—>Install
二是在idea的插件网下载好后,导入到idea中,
Preferences—>Plugins—>Install plug from disk —>选择下载好的插件安装,插件中心的地址为:https://plugins.jetbrains.com/
我下载的有下面这些和其效果分别如下:
2、maven helper
一般用这款插件来查看maven的依赖树。在不使用此插件的情况下,要想查看maven的依赖树就要使用Maven命令maven dependency:tree
来查看依赖。想要查看是否有依赖冲突也可以使用mvn dependency:tree -Dverbose -Dincludes=<groupId>:<artifactId>
只查看关心的jar包,但是这样还是需要我执行命令,并且当项目比较复杂的时候,这个过程是比较漫长的。maven helper就能很好的解决这个问题。
一旦安装了Maven Helper插件,只要打开pom文件,就可以打开该pom文件的Dependency Analyzer视图(在 文件打开之后,文件下面会多出这样一个tab),进入Dependency Analyzer视图之后有三个查看选项,分别是Conflicts(冲突)、All Dependencies as List(列表形式查看所有依赖)、All Dependencies as Tree(树结构查看所有依赖)。并且这个页面还支持搜索。很方便!并且使用该插件还能快速的执行maven命令。
3。Key Promoter X 快捷键提示插件
当你在IDEA里面使用鼠标的时候,如果这个鼠标操作是能够用快捷键替代的,那么Key Promoter X会弹出一个提示框,告知你这个鼠标操作可以用什么快捷键替代。对于新手来说,这个插件就很有用,可以让你快速熟悉快捷键的使用。
4、lombok 开发神器,可以简化你的实体类,让你i不再写get/set方法,还能快速的实现builder模式,以及链式调用方法,总之就是为了简化实体类而生的插件。
4、ECTranslation 翻译插件
5、CodeGlance
在编辑代码最右侧,可以显示一块代码小地图,因为滚动条太小,代码太长不好管理,有了这个地图,拖动起来更加方便快捷一点
6.彩色括号:Rainbow Brackets
在我们开发代码时,会用到很多的括号,比如使用到if语句,for循环等;在配置文件时,会使用到各种尖括号等;当代码稍微复杂,括号很多时,各个括号会出现对应不起来的情况,非常难以分辨和维护,这个插件的出现,则会帮助我们更好的分辨出各级括号的对应情况,各级括号以不同的颜色标记,看起来也十分炫酷美观.
7、Properties to YAML Converter
8、HighlightBracketPair
自动化高亮显示光标所在代码块对应的括号,可以定制颜色和形状,麻麻再也不用担心看(撸)代码眼睛累了
9、GsonFormat
Java开发中,经常有把json格式的内容转成Object的需求,GsonFormat这款插件可以实现该功能。
10、.ignore 忽略git提交文件
11、StackoverFlow
编码中几乎所有遇到的错误,都可以在Stack Overflow上找到,因此这个插件可称之为贴心助手,只不过默认使用Google搜索,大家注意。典型的我写bug我有理
https://www.jianshu.com/p/2afb9ed0bbcc
12、MyBatisx
Free Mybatis plugin
mybatis 插件,让你的mybatis.xml像java代码一样编辑。我们开发中使用mybatis时时长需要通过mapper接口查找对应的xml中的sql语句,该插件方便了我们的操作。
安装完成重启IDEA之后,我们会看到code左侧或多出一列绿色的箭头,点击箭头我们就可以直接定位到xml相应文件的位置。
Mybatis plugin 和Mybatis tools用处:https://blog.csdn.net/weixin_42231507/article/details/80714719
mybatis-generate-idea 和EasyCoderMyBatisCodeHelper :https://www.cnblogs.com/NeverCtrl-C/p/10193390.html
和https://www.v2ex.com/t/380765
MyBatis Log Plugin
MyBatis Log Plugin 这款插件是直接将Mybatis执行的sql脚本显示出来,无需处理,可以直接复制出来执行的,如图
16、grep console
Grep Console是一款和IDEA Console相关的插件
可以通过expression表达式过滤日志、给不同级别的日志或者给不同pattern的日志加上背景颜色与上层颜色。选中内容右键选中Grep即可生成新的过滤console。
expression参考以下配置
在图中增加expression,配置颜色即可
https://www.jianshu.com/p/1be14f8d16f2
17、String Manipulation
强大的字符串转换工具。使用快捷键,Alt+m。
-
切换样式(camelCase, hyphen-lowercase, HYPHEN-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase)
-
转换为SCREAMING_SNAKE_CASE (或转换为camelCase)
-
转换为 snake_case (或转换为camelCase)
-
转换为dot.case (或转换为camelCase)
-
转换为hyphen-case (或转换为camelCase)
-
转换为hyphen-case (或转换为snake_case)
-
转换为camelCase (或转换为Words)
-
转换为camelCase (或转换为lowercase words)
-
转换为PascalCase (或转换为camelCase)
-
选定文本大写
-
样式反转
解释:https://jingyan.baidu.com/article/d5a880eba5593713f147ccfa.html
18、JUnitGenerator V2.0 帮助生成单元测试
详细见
https://blog.csdn.net/yanxilou/article/details/85773406
https://www.cnblogs.com/libingbin/p/6007203.html
21、MetricsReloaded 还是不是很清楚怎么用:先贴在这吧:https://www.cnblogs.com/panxuchen/p/8689287.html
7、FindBugs-IDEA 寻找代码Bug,非常方便
附:FindBugs的Bug种类说明
Bad practice 坏的实践
一些不好的实践,下面列举几个:
-
HE:类定义了equals(),却没有hashCode();或类定义了equals(),却使用Object.hashCode();或类定义了hashCode(),却没有equals();或类定义了hashCode(),却使用Object.equals();类继承了equals(),却使用Object.hashCode()。
-
SQL:Statement 的execute方法调用了非常量的字符串;或Prepared Statement是由一个非常量的字符串产生。
-
DE:方法终止或不处理异常,一般情况下,异常应该被处理或报告,或被方法抛出。
Malicious code vulnerability 可能受到的恶意攻击
如果代码公开,可能受到恶意攻击的代码,下面列举几个:
-
FI:一个类的finalize()应该是protected,而不是public的。
-
MS:属性是可变的数组;属性是可变的Hashtable;属性应该是package protected的。
Correctness 一般的正确性问题
可能导致错误的代码,下面列举几个:
-
NP:空指针被引用;在方法的异常路径里,空指针被引用;方法没有检查参数是否null;null值产生并被引用;null值产生并在方法的异常路径被引用;传给方法一个声明为@NonNull的null参数;方法的返回值声明为@NonNull实际是null。
-
Nm:类定义了hashcode()方法,但实际上并未覆盖父类Object的hashCode();类定义了tostring()方法,但实际上并未覆盖父类Object的toString();很明显的方法和构造器混淆;方法名容易混淆。
-
SQL:方法尝试访问一个Prepared Statement的0索引;方法尝试访问一个ResultSet的0索引。
-
UwF:所有的write都把属性置成null,这样所有的读取都是null,这样这个属性是否有必要存在;或属性从没有被write。
Dodgy 危险的
具有潜在危险的代码,可能运行期产生错误,下面列举几个:
-
CI:类声明为final但声明了protected的属性。
-
DLS:对一个本地变量赋值,但却没有读取该本地变量;本地变量赋值成null,却没有读取该本地变量。
-
ICAST:整型数字相乘结果转化为长整型数字,应该将整型先转化为长整型数字再相乘。
-
INT:没必要的整型数字比较,如X <= Integer.MAX_VALUE。
-
NP:对readline()的直接引用,而没有判断是否null;对方法调用的直接引用,而方法可能返回null。
-
REC:直接捕获Exception,而实际上可能是RuntimeException。
-
ST:从实例方法里直接修改类变量,即static属性。
Performance 性能问题
可能导致性能不佳的代码,下面列举几个:
-
DM:方法调用了低效的Boolean的构造器,而应该用Boolean.valueOf(…);用类似Integer.toString(1) 代替new Integer(1).toString();方法调用了低效的float的构造器,应该用静态的valueOf方法。
-
SIC:如果一个内部类想在更广泛的地方被引用,它应该声明为static。
-
SS:如果一个实例属性不被读取,考虑声明为static。
-
UrF:如果一个属性从没有被read,考虑从类中去掉。
-
UuF:如果一个属性从没有被使用,考虑从类中去掉。
Multithreaded correctness 多线程的正确性
多线程编程时可能导致错误的代码,下面列举几个:
-
ESync:空的同步块,很难被正确使用。
-
MWN:错误使用notify(),可能导致IllegalMonitorStateException异常;或错误的使用wait()。
-
No:使用notify()而不是notifyAll(),只是唤醒一个线程而不是所有等待的线程。
-
SC:构造器调用了Thread.start(),当该类被继承可能会导致错误。
Internationalization 国际化
当对字符串使用upper或lowercase方法,如果是国际的字符串,可能会不恰当的转换。
https://blog.csdn.net/feibendexiaoma/article/details/72821781
24、UML Support
25、Alibaba Java Coding Guidelines
还可以让其自动修复代码:
26、 VisualVM Launcher
https://www.cnblogs.com/max-home/p/11892785.html
27、高亮所选字段
https://blog.csdn.net/lxzpp/article/details/81081162
和 https://blog.csdn.net/qq465235530/article/details/78900863?depth_
27、
idea多线程调试:https://blog.csdn.net/kevindai007/article/details/71412324
和https://blog.csdn.net/nextyu/article/details/79039566
感恩:
1、https://www.cnblogs.com/Im-Victor/p/11319470.html
2、https://www.cnblogs.com/max-home/p/11892785.html
3、https://blog.csdn.net/feibendexiaoma/article/details/72821781
4、https://www.cnblogs.com/xl5230/p/11555076.html
5、https://mp.weixin.qq.com/s/eAAa0CE80Zjzu0oHRLGwSA
6、https://blog.csdn.net/sunny243788557/article/details/52325444
7、https://www.cnblogs.com/NeverCtrl-C/p/10193390.html 和https://www.v2ex.com/t/380765
待安装:
3.auto import
6、Alibaba Cloud Toolkit
8、Iedis 未使用会
19、VisualVM Launcher
20、Kubernetes
22、mongo4idea
23、Statistic
24、JRebel for IntelliJ