准备工作
# 环境搭建中的问题
安装并配置好Gradle,参考链接 (opens new window)。
forkspring-framework (opens new window)仓库代码到自己的仓库,并拉取到本地。 参考链接 (opens new window) 参考链接 (opens new window) 参考链接 (opens new window)
An exception occurred applying plugin request [id: 'com.gradle.build-scan', version: '3.2'] Failed to apply plugin [id 'com.gradle.build-scan'] The build scan plugin is not compatible with Gradle 6.0 and later. Please use the Gradle Enterprise plugin instead.
1
2
3
4
5gradle 版本需要6.0以下
新建的项目没有src目录
在build.gradle中添加一个任务
5.x版本
task 'create-dirs' { doLast { sourceSets*.java.srcDirs*.each { it.mkdirs() } sourceSets*.resources.srcDirs*.each { it.mkdirs() } } }
1
2
3
4
5
6
7
8
9
104.x版本
task "create-dirs" << { sourceSets*.java.srcDirs*.each { it.mkdirs() } sourceSets*.resources.srcDirs*.each{ it.midirs() } }
1
2
3
4
5
6
7
8Error:(27, 47) java: 程序包org.springframework.cglib.core.internal不存在 在代码根目录下执行 gradle objenesisRepackJar 和 gradle cglibRepackJar
Error:(350, 51) java: 找不到符号 符号: 变量 CoroutinesUtils 位置: 类 org.springframework.core.ReactiveAdapterRegistry.CoroutinesRegistrar 解决办法 (opens new window) 如果找不到jar包,可以先把项目spring.core编译一下
Error:(26, 38) java: 找不到符号 符号: 类 InstrumentationSavingAgent 位置: 程序包 org.springframework.instrument
将spring-context.gradle文件的
下面这一行 optional(project(":spring-instrument")) 修改为 compile(project(":spring-instrument"))
引入其他module解决参考链接 (opens new window)
# IDEA debug快捷键
Show Execution Point (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。
Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。
Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法,如第25行的put方法。
智能步入 (shift+F7):如果当前行有嵌套方法,会弹出选择框,点击选择要步入的方法
Resume Program (F9):恢复程序,比如,你在第20行和25行有两个断点,当前运行至第20行,按F9,则运行到下一个断点(即第25行),再按F9,则运行完整个流程,因为后面已经没有断点了。
Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
Step Out (Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
Drop Frame (默认无):回退断点,回退到上一个方法或断点,但已经改变的值无法恢复。
Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
Evaluate Expression (Alt + F8):计算表达式,可以使用这个操作在调试过程中计算某个表达式的值,而不用再去打印信息。设置变量,在计算表达式的框里,可以改变变量的值。