一、下载spring源码
1.进入spring官网:https://spring.io/projects/spring-framework
2.点击右上角的github地址进入spring源码仓库:https://github.com/spring-projects/spring-framework
3.创建自己gitee仓库:
注意:
创建的时候,需要把仓库内容从github克隆:创建仓库的时候点击右上角的 “点击导入”
填写好克隆地址:https://github.com/spring-projects/spring-framework.git
直接点击创建,稍等几分钟等待克隆完毕。
4.在本地克隆自己仓库里的spring源码:
git clone -b 5.3.x https://gitee.com/ht-learnjava/spring-framework.git
源码下载完毕
二、安装gradle
spring源码时基于gradle构建的,为了更好的学习源码、最好是去学习一下gradle
1.在下载的源码中找到gradle-wrapper.properties文件,打开此文件看到如下内容:
所在位置:D:\spring-framework\gradle\wrapper\gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
此文件中的内容声明了官方所用的gradle版本:gradle-7.2-bin.zip
2.下载对应的grandle版本
下载地址:https://gradle.org/releases/
选择v7.2版本
3.在自己电脑中的某一位置解压下载的gradle,在解压目录中新建一个文件夹 . gradle,
也可以在其他位置新建,此文件夹是为gradle的jar包本地仓库位置,类似于maven的localRepository
4.在init.d文件夹下创建gradle初始化配置文件:init.gradle,在此配置文件中配置中央仓库和本地仓库,内容如下:
// project
allprojects{
repositories {
mavenLocal()
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/jcenter/' }
maven { url 'https://maven.aliyun.com/repository/google/' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
maven { url 'https://jitpack.io/' }
}
}
// plugin
settingsEvaluated { settings ->
settings.pluginManagement {
// Clear repositories collection
repositories.clear()
// Add my Artifactory mirror
repositories {
mavenLocal()
maven {
url 'https://maven.aliyun.com/repository/gradle-plugin/'
}
}
}
}
5.配置gradle的系统环境变量
变量1:GRADLE_HOME(gradle安装路径变量)
变量1的值为:D:\software\gradle-7.2(自己解压的gradle目录)
变量2:GRADLE_USER_HOME(仓库目录)
变量2的值:D:\software\gradle-7.2.gradle(就是我们新建的。gradle目录)
path里加上gradle命令路径:%GRADLE_HOME%\bin
至此gradle安装完毕,继续下一步。
三、配置idea环境
1.使用idea打开spring源码,打开他就会下载jar包,我们此时环境还没有配好,需要停止build。
2.配置project Structure 中的jdk版本,最好使用jdk8
3.在setting-plugins中安装aspectj编译插件(spring-aop和spring-aspects项目需要此插件编译)
下载地址:https://www.eclipse.org/aspectj/downloads.php
下载最新版就行。
4.安装AspectJ,安装的前提是配置了jdk环境变量。
第一步:在aspectj下载的目录位置,打开cmd窗口,执行:java -jar aspectj-1.9.6.jar,此时会弹出jdk选择窗口,确认jdk路径是否正确
第二步:点击下一步选择aspectj安装目录:我的目录为 D:\software
5.在ide中配置aspectj编译环境:需要重启idea进行安装(重启的目的是为了让aspectj插件生效)。
第一步:
在setting中找到 Build、Execution、Deployment下的Compiler,在Compiler下找到 Java Compiler,选择Use compiler 的选项为ajc
在此面板中找到 Ajc Options:勾选Delegate to javac,目的是让aspectj只编译我们配置的aop和aspects项目使用aspectj编译,其他的使用javac编译。
第二步:在Project Structure中找到spring下面的spring-aop项目和spring-aspects项目,在这两个项目分别都添加aspect编译环境:右键项目—>add 选项中选择aspectj.
至此,编译环境设置好,还需继续配置其他内容
6.配置gradle仓库:在setting中找到Gradle.配置Grandle use home 为:D:/software/gradle-7.2/.gradle(自己新建的。gradle目录)
7.修改项目中的中央仓库配置:
第一步:在项目中找到buildSrc中的build.gradle文件,搜索 repositories,repositories的配置如下:
repositories {
mavenLocal()
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/jcenter/' }
maven { url 'https://maven.aliyun.com/repository/google/' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
maven { url 'https://jitpack.io/' }
mavenCentral()
gradlePluginPortal()
}
第二步:项目中的build.gradle和setting.gradle都做同样的配置:
repositories {
mavenLocal()
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/jcenter/' }
maven { url 'https://maven.aliyun.com/repository/google/' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
maven { url 'https://jitpack.io/' }
mavenCentral()
gradlePluginPortal()
}
四、编译工程:
1.点击idea右边的gradle,刷新gradle,等待依赖下载完毕。
2.编译spring-oxm子项目。执行spring—>spring-oxm—>task-other下的compileTestJava插件
3.编译整个工程,执行spring—>Tasks—>build下的build插件
等待几分钟编译完毕即可
至此,spring源码编译完毕,继续奋斗吧!
欢迎大家给我留言沟通,共同进步。