在学源码,希望跟着视频一起走流程,拉源码到本地到顺利执行,稀里糊涂,花了我2天时间。
最重要最麻烦的就是
Gradle,kotlin,spring等版本的不一致。导致最多坑,还有就是阿里云等url 网速过慢。
有问题可以 在评论区 留下你的问题。
tips:
如果觉得源码debug起来,build太慢了。可能是IDEA配置,选的是Gradle中运行,修改配置成IDEA中运行,然后会遇到三个坑。在本文最下面会有解决方法,有什么其他问题,可以留言讨论!
我选择的是 spring 5.2.x
查看github,或者gitee上。gradle.
每一次构建,不过不设置本地,会重新从网络的下载gradle。
不下载本地,就多等一会儿。影响不大。
git clone [email protected]:yasin4040/spring-framework.git
这是我的 基本也不会动,可以直接gitclone。默认是master分支
//查看分支
git branch -a
//命名,并切换分支
git checkout -b 5.2.x origin/5.2.x
//再次查看当前分支
git branch
顺利切换
本地Gradle配置方法,免去长时间的更新同步等待
distributionUrl=file:///D:/repo/gradle-5.6.4-bin.zip
repositories {
// 新增2个阿里镜像地址
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/repository/spring' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
// 新增spring插件库
maven { url "https://repo.spring.io/plugins-release"}
}
repositories {
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url "https://maven.aliyun.com/repository/public" }
gradlePluginPortal()
maven { url 'https://repo.spring.io/plugins-release' }
}
org.gradle.jvmargs=-Xmx2048M
org.gradle.caching=true
org.gradle.parallel=true
kotlin.stdlib.default.dependency=false
## 启用新的孵化模式
org.gradle.configureondemand=true
## 开启守护进程 通过开启守护进程,下一次构建的时候,将会连接这个守护进程进行构建,而不是重新fork一个gradle构建进程
org.gradle.daemon=true
./gradlew :spring-oxm:compileTestJava
./gradlew :spring-core:compileTestJava
选中文件 build.gradle 用idea打开。
指定本地下载的gradle
repositories {
mavenLocal()
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
implementation(project(":spring-context"))
}
可以通过 File–>Setting–> Build,Execution,Deployment–>Build Tools–>Gradle 设置 Build and run using: 选择Intellj IDEA 即可。
报错 Kotlin: warnings found and -Weeror specified
还有一个
符号: 变量 CoroutinesUtils
位置: 类 org.springframework.core.ReactiveAdapterRegistry.CoroutinesRegistrar
添加到spring-core-main
java: 找不到符号
符号: 类 InstrumentationSavingAgent
位置: 程序包 org.springframework.instrument
解决
demo模块的build.gradle 增加
compile(project(“:spring-instrument”))
如下
plugins {
id 'java'
}
group 'org.springframework'
version '5.2.21.BUILD-SNAPSHOT'
repositories {
mavenLocal()
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
// implementation(project(":spring-context"))
compile(project(":spring-context"))
compile(project(":spring-instrument"))
compile group: 'org.aspectj', name: 'aspectjweaver', version: '1.8.6'
}
顺利!!!一点debug,1s就进断点!!!!!!!!!