Skip to content

开发环境配置

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
ArthasHotSwapArthas 的热部署插件,支持在运行时动态修改 Java 类。
Alibaba Cloud Toolkit阿里云开发工具包,提供与阿里云服务集成的功能和工具。
AllFormat提供代码格式化和样式统一的功能,支持不同语言和文件类型。
VisualVM Launcher3Java 虚拟机监控和分析工具 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 日志的插件。
MybatisXMyBatis 代码生成和 SQL 语句分析工具。
MyBatisCodeHelperProMyBatis 开发辅助工具,提供自动补全和查询优化功能。
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包

xml
<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

image-20220406185340536

项目在重新编译后就会自动生成spring-configuration-metadata.json文件,自定义的配置实现自动提示

Debug调试

通过Force Return,即强制返回来避免后续的流程。

点击Force Return,弹出Return Value的窗口,强制返回方法值或者设置表达式,从而不再进行后续的流程。

image-20220326125138697

image-20220326125212669

在调用栈方法上选择要回退的方法,右键选择Drop Frame,回退到该方法的上一个方法调用处

多线程调试

IDEA在Debug时默认阻塞级别是ALL,会阻塞其它线程,只有在当前调试线程走完时才会走其它线程。可以在View Breakpoints里选择Thread,如下图,然后点击Make Default设置为默认选项。

切换线程,在下图中Frames的下拉列表里,可以切换当前的线程,如下我这里有两个Debug的线程,切换另外一个则进入另一个Debug的线程。

image-20220326125726762

image-20220326125930896

断点处添加 log

在正常加断点的地方使用快捷键 Shift + 鼠标左键,就会弹出下面的内容

image-20220326130701407

勾选上 Evaluate and log, 并自定义你想查看的 log/变量, 这样以 Debug 模式运行程序(正常模式运行,不会打印这些 log)

可以勾选上面图片绿色框线的 "Breakpoint hit" message --->Breakpoint reached

更详细的信息,勾选上 Stack trace --->堆栈信息

字段断点

使用:

  1. 在字段定义处鼠标左键添加断点(会出现「眼睛」的图标)

  2. 在「眼睛」图标上鼠标右键

  3. 在弹框中勾选上Field accessField modification 两个选项

    如果修改字段值的方法比较多,也可以在 Condition 的地方定义断点进入条件

    image-20220326131101917

异常断点

Exception Breakpoints

当抛出异常时,在 catch 的地方打上断点,可以通过下图的几个位置获取栈顶异常类型

方法断点

在接口方法上添加断点(快捷键 cmd+F8/ctrl+F8):

  1. 鼠标左键在方法处点击断点(♦️形状)

  2. 断点上鼠标右键

    当以 Debug 模式运行程序的时候,会自动进入实现类的方法(注意断点形状)

2、VsCode

常用插件

插件名称描述
VeturVue.js 开发必备插件,提供语法高亮、智能感知、Emmet 支持以及代码格式化功能。
EsLintJavaScript 和 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 CodeVisual Studio Code 的简体中文语言包,提供界面和编辑器内容的中文化支持。

3、Maven

标识生命周期
compile缺省值,适用于所有阶段(测试运行,编译,运行,打包)
provided类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet-api.jar;适用于(测试运行,编译)阶段
runtime只在运行时使用,如 mysql的驱动jar,适用于(运行,测试运行)阶段
test只在测试时使用,适用于(编译,测试运行)阶段,如 junit.jar
systemMaven不会在仓库中查找对应依赖,在本地磁盘目录中查找;适用于(编译,测试运行,运行)阶段
标识命令
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