开发环境配置
1、IDEA
模板配置
类模板
Editor-->File and Code Templates-->File Header
/**
* ${TODO}
* @author TheWe1
* @date ${YEAR}年${MONTH}月${DAY}日 ${TIME}
* @Description ${TODO}
*/
/**
* ${TODO}
* @author TheWe1
* @date ${YEAR}年${MONTH}月${DAY}日 ${TIME}
* @Description ${TODO}
*/
常用插件
根据您提供的插件和工具列表,整理如下表格,并为每个条目添加简要描述:
插件/工具名称 | 描述 | 引用 |
---|---|---|
Key Promoter X | 提示您在 IntelliJ IDEA 中使用键盘快捷键而不是鼠标操作。 | |
CodeGlance | 在编辑器侧边栏显示代码地图和快速导航功能。 | Y |
SonarLint | 集成 SonarQube 静态代码分析,实时检查代码质量和安全性问题。 | |
GenerateO2O | 生成代码以支持线上到线下(O2O)业务模式的转换。 | |
.ignore | 提供在项目中忽略特定文件和目录的支持,生成.gitignore文件。 | Y |
Save Actions | 自动保存、格式化和优化代码的插件。 | Y |
arthsa idea | 阿里巴巴开源的 Java 诊断工具 Arthas 的 IDEA 插件。 | Y |
ArthasHotSwap | Arthas 的热部署插件,支持在运行时动态修改 Java 类。 | |
Alibaba Cloud Toolkit | 阿里云开发工具包,提供与阿里云服务集成的功能和工具。 | |
AllFormat | 提供代码格式化和样式统一的功能,支持不同语言和文件类型。 | |
VisualVM Launcher3 | Java 虚拟机监控和分析工具 VisualVM 的插件版本。 | Y |
CamelCase | 支持在代码中自动转换驼峰命名和下划线命名。 | Y |
Alibaba Guidelines | 阿里巴巴编码规范插件,帮助开发者遵循阿里巴巴的编码规范。 | Y |
Grep Console | 在控制台中过滤、高亮和分析输出信息的插件。 | Y |
SequenceDiagram | 根据代码生成时序图的插件,支持多种代码语言。 | Y |
LeetCode Editor | 集成 LeetCode 在 IDE 中刷题的插件,提供代码编辑和测试环境。 | |
idea-yapi | 集成 Yapi 接口管理平台的插件。 | |
JUnit 5 Mockito code generator | 自动生成 JUnit 5 和 Mockito 测试代码的插件。 | |
activate-power-mode | 给 IDE 添加激动人心的动画效果,增强编码体验。 | |
Rainbow Brackets | 根据括号的深度显示不同颜色,增强代码块的可读性。 | Y |
cyan Light Theme | 提供清爽的青色主题,改变 IDE 的视觉外观。 | |
stackoverflow | 提供 Stack Overflow 搜索和浏览功能,帮助解决编程问题。 | |
GsonFormatPlus | 自动生成 Gson 相关的 Java 类和代码,简化 Gson 使用。 | |
any-rule | 提供多种代码规范检查和自动修复功能的插件。 | |
Translation | 提供代码注释和文档的翻译功能,支持多种语言。 | |
MybatisLogFormat | 格式化 MyBatis 输出的 SQL 日志的插件。 | |
MybatisX | MyBatis 代码生成和 SQL 语句分析工具。 | |
MyBatisCodeHelperPro | MyBatis 开发辅助工具,提供自动补全和查询优化功能。 | |
Maven Helper | 提供 Maven 项目管理和依赖查看的工具。 | Y |
Lombok | 自动化生成 Java 代码中的样板代码,简化开发流程。 | Y |
Codota | 提供智能代码建议和自动补全功能,基于大数据分析。 | |
JRebel | 提供 Java 热部署功能,无需重启应用即可更新代码。 | |
Git Commit Template | 提供 Git 提交消息模板和管理功能的插件。 | |
IDEA MapStruct | 提供 MapStruct 映射框架的支持和代码生成功能。 |
Debug技巧
配置自动提示
IDE是通过读取配置信息的元数据而实现自动提示的,而元数据在目录META-INF
中的spring-configuration-metadata.json
或者 additional-spring-configuration-metadata.json
工程中添加以下jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
搜索Annotation Processor
并设置Enable annotation processing
项目在重新编译后就会自动生成spring-configuration-metadata.json
文件,自定义的配置实现自动提示
Debug调试
通过Force Return,即强制返回来避免后续的流程。
点击Force Return,弹出Return Value的窗口,强制返回方法值或者设置表达式,从而不再进行后续的流程。
在调用栈方法上选择要回退的方法,右键选择Drop Frame
,回退到该方法的上一个方法调用处
多线程调试
IDEA在Debug时默认阻塞级别是ALL,会阻塞其它线程,只有在当前调试线程走完时才会走其它线程。可以在View Breakpoints里选择Thread,如下图,然后点击Make Default设置为默认选项。
切换线程,在下图中Frames的下拉列表里,可以切换当前的线程,如下我这里有两个Debug的线程,切换另外一个则进入另一个Debug的线程。
断点处添加 log
在正常加断点的地方使用快捷键 Shift + 鼠标左键
,就会弹出下面的内容
勾选上 Evaluate and log
, 并自定义你想查看的 log/变量, 这样以 Debug 模式运行程序(正常模式运行,不会打印这些 log)
可以勾选上面图片绿色框线的 "Breakpoint hit" message
--->Breakpoint reached
更详细的信息,勾选上 Stack trace
--->堆栈信息
字段断点
使用:
在字段定义处鼠标左键添加断点(会出现「眼睛」的图标)
在「眼睛」图标上鼠标右键
在弹框中勾选上
Field access
和Field modification
两个选项如果修改字段值的方法比较多,也可以在
Condition
的地方定义断点进入条件
异常断点
Exception Breakpoints
当抛出异常时,在 catch 的地方打上断点,可以通过下图的几个位置获取栈顶异常类型
方法断点
在接口方法上添加断点(快捷键 cmd+F8
/ctrl+F8
):
鼠标左键在方法处点击断点(♦️形状)
断点上鼠标右键
当以 Debug 模式运行程序的时候,会自动进入实现类的方法(注意断点形状)
2、VsCode
常用插件
插件名称 | 描述 |
---|---|
Vetur | Vue.js 开发必备插件,提供语法高亮、智能感知、Emmet 支持以及代码格式化功能。 |
EsLint | JavaScript 和 TypeScript 的语法检查工具,用于代码风格和错误的静态分析和纠正。 |
Auto Close Tag | 自动闭合 HTML/XML 标签的插件,在输入开始标签时自动补全对应的结束标签。 |
Auto Rename Tag | 自动同步修改 HTML/XML 标签对的另一侧标签,确保标签闭合时的一致性。 |
JavaScript(ES6) code snippets | 提供 ES6 语法的智能提示和快速输入,支持 JavaScript、TypeScript、JSX、Vue 等多种文件类型。 |
HTML CSS Support | 提供在 HTML 标签中写 class 属性时的智能提示,显示当前项目所支持的样式类。 |
HTML Snippets | 提供 HTML 快速自动补全的功能,加速编写 HTML 文件时的标签输入。 |
Open in browser | 可以快速在浏览器中打开当前编辑的 HTML 文件或网页。 |
Live Server | 以内置服务器的方式运行并实时更新静态和动态页面,支持本地开发和调试。 |
Chinese (Simplified) Language Pack for Visual Studio Code | Visual Studio Code 的简体中文语言包,提供界面和编辑器内容的中文化支持。 |
3、Maven
标识 | 生命周期 |
---|---|
compile | 缺省值,适用于所有阶段(测试运行,编译,运行,打包) |
provided | 类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet-api.jar;适用于(测试运行,编译)阶段 |
runtime | 只在运行时使用,如 mysql的驱动jar,适用于(运行,测试运行)阶段 |
test | 只在测试时使用,适用于(编译,测试运行)阶段,如 junit.jar |
system | Maven不会在仓库中查找对应依赖,在本地磁盘目录中查找;适用于(编译,测试运行,运行)阶段 |
标识 | 命令 |
---|---|
clean | 删除 target 目录及内容 |
validate | |
compile | 将 src/main/java 下的文件编译为 class 文件输出到 target目录下 |
test | 执行src/test/java下的单元测试类 |
package | 对于 java 工程执行 package 打成 jar 包,对于web 工程打成war包 |
verify | |
install | 将 maven 打成 jar 包或 war 包发布到本地仓库 |
site | 生成项目报告,站点,发布站点 |
depoly | 将最终的包复制到远程的仓库 |
Maven依赖是如何查找的?
当需要依赖时,会从仓库中取查找,优先顺序为:
本地仓库 > 私服(如果配置了的话) > 公共仓库(如果配置了的话) > 中央仓库
Maven如何手动打包?
mvn install:install-file
-Dfile=D:\canal.client-1.1.0.jar
-DgroupId=com.alibaba.otter
-DartifactId=canal.client
-Dversion=1.1.0
-Dpackaging=jar
mvn install:install-file
-Dfile=D:\canal.client-1.1.0.jar
-DgroupId=com.alibaba.otter
-DartifactId=canal.client
-Dversion=1.1.0
-Dpackaging=jar
maven仓库配置
4、Git
git commit后,如何撤销commit ?
git reset --soft HEAD^
git reset --soft HEAD^
HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1 如果进行两次的commit,想要都撤回,可以使用HEAD~2
--soft 不删除工作空间的改动代码 ,撤销commit,不撤销git add file --hard 删除工作空间的改动代码,撤销commit且撤销add