近期由于想看看Spring和SpringBoot源码,所以自己搭建了一下Spring和SpringBoot 源码环境,方便对源码的学习,今天分享出来,共同学习进步,踏上新的征程。
本篇只说Spring源码环境的搭建,下一篇会讲解一下 SpringBoot 源码环境的搭建。
第一步、先熟悉下搭建Spring源码环境需要的一些环境:
1、IDEA2020.1(2020版本的IDEA出来之后,尽量用2020版本的,有人会问为啥?因为。。。更香,哈哈哈)
2、java:1.8
3、gradle: gradle-5.6.4-all.zip(下载地址:services.gradle.org/distributio…,各个版本都有)
4、配置环境变量:JAVA_HOME,GRADLE_HOME(这些应该不用多说了,实在不知道的再问吧)
第二步、fork spring源码(spring.io)到自己github上,地址:github.com/spring-proj…,我这里用的是Spring 的 5.2.X分支编译的。
第三步、代码拉下来之后,导入 IDEA,并切换分支为 5.2.X。
第四步、配置IDEA的gradle版本,file-settings--gradle,设置为 5.6.4版本的,6.3-rc-4有点高会报错(大家可以自行试一下各个版本的,不是绝对的)
第五步、修改配置文件
1、修改gradle.properties文件:org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m 注释掉:kotlin-coroutines.gradle中的
//eclipse {
// project {
// buildCommand "org.jetbrains.kotlin.ui.kotlinBuilder"
// buildCommand "org.eclipse.jdt.core.javabuilder"
// natures "org.jetbrains.kotlin.core.kotlinNature"
// natures "org.eclipse.jdt.core.javanature"
// linkedResource name: "kotlin_bin", type: "2", locationUri: "org.jetbrains.kotlin.core.filesystem:/" + project.name + "/kotlin_bin"
// }
// classpath {
// containers "org.jetbrains.kotlin.core.KOTLIN_CONTAINER"
// }
//}
2、注释掉:spring-aspects.gradle中的
//eclipse.project {
// natures += "org.eclipse.ajdt.ui.ajnature"
// buildCommands = [new org.gradle.plugins.ide.eclipse.model.BuildCommand("org.eclipse.ajdt.core.ajbuilder")]
//}
3、修改build.gradle文件,配置为阿里的Maven仓库(为了下载依赖更快,减少编译时间)
repositories {
// mavenCentral()
// maven { url "https://repo.spring.io/libs-spring-framework-build" }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
//替换为阿里云仓库
maven { url "https://maven.aliyun.com/repository/central" }
//由于阿里云仓库 Could not find com.ibm.websphere:uow:6.0.2.17无法找到,添加springsource仓库
maven { url "https://repo.springsource.org/plugins-release" }
}
publishing {
publications {
mavenJava(MavenPublication) {
// 注释掉
// artifact docsZip
// artifact schemaZip
// artifact distZip
}
}
}
4、修改gradle-wrapper.properties,这里为本地的gradle,可以在services.gradle.org/distributio…上进行下载自己需要的版本。
# 本地的gradle的zip包地址
distributionUrl=file:///F:/gradle/gradle-5.6.4-all.zip
5、Excluded spring-aspects 和 spring-tx 两个项目(也可以选择不Excluded,因为我只是为了编译更快,防止出现编译报错)
6、添加 spring缺少jar包 里的2个jar包到 IDEA 仓库里
第六步、build spring-oxm模块,就在IDEA里直接build。
第七步、build整个spring模块。
如果有其他报错的话,可以看着解决,解决不掉的话,可以随时沟通。
如果下载 Jar 包总是下不来的话,尝试下翻墙吧,我第二次编译的时候,下载 Jar 包可能会因为网络波动问题导致下载不下来,翻墙之后可以下载。
我是进阶的球儿,大家一起2019年的爬坑历程。感觉分享很给力的话给个赞,谢谢!!!有问题也可以下方留言或者加本人QQ:313989006 进行沟通。