idea学习系列五之debug及插件的使用
idea学习系列五之debug及插件的使用
上一篇,介绍了maven及服务器的使用,这里将介绍idea中debug及插件的使用。在实际开发中debug是最常用的了,而且idea相比于eclipse中的debug还新增了一些比较好用的功能。还有就是idea的插件还是挺丰富的功能也很强大,所以安装一下插件还是挺有必要的。
debug的使用
idea中debug的基本使用其实已经有很好的文章了,大家可以参考:
https://blog.****.net/qq_27093465/article/details/64124330
所以debug的基本使用这里不再累赘,这里主要就介绍一下在idea中debug的特有功能。也算是一些小技巧吧。
首先来看一下debug的控制台:
除了一些常用的功能还有一些特殊的:
-
watches
- 这个用于监控变量。我们可以直接在里面手动添加要监控的变量,还可以将代码中的变量拖拽到watches中
-
额外操作
- 我们可以在点击这个按钮之后的弹出框里可以通过代码中的变量,写一些代码以及计算表达式来计算某些数据的值
- 我们可以在点击这个按钮之后的弹出框里可以通过代码中的变量,写一些代码以及计算表达式来计算某些数据的值
-
断点条件
- 可以通过点击这个按钮或在断点前面点击右键。来弹出断点条件设置框。
- 在这里弹出框里面我们可以在Condition里面设置条件,只有条件满足这个断点才会生效。
- Pass count 这个表示跳过多少次后开始步入,比如 for 循环中,我们要查看一个变量循环 3 次后的结果就可以使用该方式。
- Remove once hit 对于某些不重要的断点,只要步入一次就够了,就可以勾选此选项,让它步入之后自动删除
- 可以通过点击这个按钮或在断点前面点击右键。来弹出断点条件设置框。
-
重新布局
- 在debug界面乱了之后可以通过这个来重新布局
- 在debug界面乱了之后可以通过这个来重新布局
-
跳转到代码执行位置
- 有时候我们可能在看代码的时候,点到了其他地方。如果我们想直接回到代码执行位置可以通过这个按钮来实现
- 有时候我们可能在看代码的时候,点到了其他地方。如果我们想直接回到代码执行位置可以通过这个按钮来实现
-
跳转到光标所在位置
- 跳转到那个光标所在的地方,前提是没断点拦着
- 跳转到那个光标所在的地方,前提是没断点拦着
-
重新执行方法
- 当我们进入到某个方法中。在执行的时候如果点快了导致跳过了某些断点如果我们想重新再到这个断点上面,我们就可以通过这个按钮来重新执行这个方法。
- 当我们进入到某个方法中。在执行的时候如果点快了导致跳过了某些断点如果我们想重新再到这个断点上面,我们就可以通过这个按钮来重新执行这个方法。
-
修改变量的值
- 在代码执行的时候我们可以点击变量然后右键通过Set Value来修改变量的值。
这些就是idea中相对于eclipse新增的一些比较好用的debug功能,下面介绍一下插件
- 在代码执行的时候我们可以点击变量然后右键通过Set Value来修改变量的值。
插件
插件的安装及使用可以参考:
https://github.com/judasn/IntelliJ-IDEA-Tutorial/blob/master/plugins-settings.md
下面是我安装的插件:
-
Key Promoter X
- 这个一个快捷键提示插件,安装后在你通过非快捷键方式使用某功能时 为你提供快捷键建议
-
Translation
- 他是一个翻译插件,但是只能在文件中对文档进行翻译。安装后可以先选中要翻译的文本然后通过Ctrl+Shift+Y进行翻译,当然也可通过右键进行选择
-
Grep Console
- 他可以给不同的日志添加不同的颜色
-
Free MyBatis plugin
- 可以实现mybatis中接口和mapping文件之间的快速跳转
-
RestfulToolkit
-
一套 RESTful 服务开发辅助工具集。
1.根据 URL 直接跳转到对应的方法定义 ( or Ctrl Alt N );
2.提供了一个 Services tree 的显示窗口;
3.一个简单的 http 请求工具;
4.在请求方法上添加了有用功能: 复制生成 URL;,复制方法参数…
5.其他功能: java 类上添加 Convert to JSON 功能,格式化 json 数据 ( Windows: Ctrl + Enter; Mac: Command + Enter )。
安装后,右侧会有RestServices侧边栏,点击打开
-
-
Maven Helper
-
分析依赖冲突插件
此插件可用来方便显示maven的依赖树,在没有此插件时,如果想看maven的依赖树需要输入命令行: mvn dependency:tree 才可查看依赖。如果想看是否有依赖包冲突的话也需要输入命令行等等的操作。而如果安装Maven Helper插件就可免去命令行困扰。通过界面即可操作完成。
打开项目中的pom文件,在底部会显示一个“Dependency Analyzer”,
可进行相应操作:
- Conflicts(查看冲突)
- All Dependencies as List(列表形式查看所有依赖)
- All Dependencies as Tree(树形式查看所有依赖)
- 搜索功能
-
-
Gsonformat
-
可根据json数据快速生成java实体类。
自定义个javaBean(无任何内容,就一个空的类),复制你要解析的Json,然后alt+insert弹出如下界面或者使用快捷键 Alt+S,在里面粘贴刚刚复制的Json,点击OK即可。
-
-
GenerateAllSetter
- 可以通过这个插件来快速生成类中的set方法来给对象赋值。
- 可以通过这个插件来快速生成类中的set方法来给对象赋值。
-
JRebel for IntelliJ
-
这是一个很强大的热部署插件。不过安装后需要进行**。
- **参考:https://www.jiweichengzhu.com/article/33c0330308f5429faf7a1e74127c9708
- 由于是用了一个服务器进行代理**的所以可能会有的时候**会失效,不过我们在**之后可以把它切换到离线状态。
- 目前可用url:
https://jrebel.hexianwei.com/a2db8523-3c85-4a8c-a22d-f8fe1c143dd4
-
使用配置。
- 安装好之后点击View–>Tool Windows–>JRebel,显示出jrebel Panel窗口,在窗口中将行吗启用jrebel。就是和下图一样,把选项选中就可以了。然后他会在项目中生成一个rebel.xml文件。
- 如果我们使用的是外部的容器来运行项目,那么在配置容器的时候
On 'Update' action
和On frame deactivation
这两项目一定要选择Update classes and resources
- 安装好之后点击View–>Tool Windows–>JRebel,显示出jrebel Panel窗口,在窗口中将行吗启用jrebel。就是和下图一样,把选项选中就可以了。然后他会在项目中生成一个rebel.xml文件。
-
使用
- 配置好之后就可以直接使用了,在启动的时候我们需要选择JRebel提供的方式来启动项目,那么这个项目就可以实现热加载
- 配置好之后就可以直接使用了,在启动的时候我们需要选择JRebel提供的方式来启动项目,那么这个项目就可以实现热加载
-
-
vue.js
- 编写vue的一个插件,在安装好插件之后还要在配置一下
- 配置支持ES6
-
FindBugs
-
这个可以帮我们扫描代码,检查出一些常见的代码问题,从而让代码更健康
-
安装的话直接搜索然后直接点击安装就可以了,
-
使用
-
在安装重启后他会出现一个FindBugs-IDEA窗口,FindBugs所有的操作都在这个窗口中。
-
其实简单的理解就是1-9是用于对代码进行分析的选项,然后10-13是在找到bug之后对于bug的显示方式也就是bug的分组方式,常用的是根据bug类型分组或根据bug严重级别进行分组
-
如果根据bug类型分组,常见的问题类型
-
Malicious code vulnerability: 恶意代码
Dodgy code:不符合规范的代码
Internationalization:国际化相关问题,如错误的字符串转换;
Bad practice:坏的实践:常见代码错误,序列化错误,用于静态代码检查时进行缺陷模式匹配;
Multithreaded correctness:多线程的正确性:如多线程编程时常见的同步,线程调度问题;
Performance:运行时性能问题,如由变量定义,方法调用导致的代码低效问题。
Correctness:可能导致错误的代码,如空指针引用等;
Experimental:可能受到的恶意攻击,如访问权限修饰符的定义等;
Security:安全性
-
-
如果根据bug严重级别进行分组,常见的问题类型
-
Of Concren 建议, 如果遵循能更好的完善代码
Troubling 不好的, 可能会引发不良后果
Scary 严重问题, 在某种情况下一定会出现问题
Scariest 非常严重, 已经影响到当前程序功能
-
-
-
-
Alibaba Java Coding Guidelines
- 阿里的java代码检查工具。
- 安装后使用起来很简单就两个按钮,而且是中文的。
- 绿色的那个是对代码进行扫描,而蓝色的是在编写代码的时候进行实时检查的开关
好啦,idea系列到这里就结束啦,也写了挺久的。当然在这个系列中有可能一些东西没有做到手把手傻瓜式的操作。不过具体的操作还是得去实践的,这里就当做是抛砖引玉啦,有问题或不明白的地方可以参考官网或留言,谢谢。