环境:
win10系统
IDEA Ultimate 2019.3 【https://www.jetbrains.com/idea/download/#section=windows】
Spring 5.2.6 【https://github.com/spring-projects/spring-framework】
Gradle 6.4.1 【https://gradle.org/releases/】
编译步骤如下:
一、下载Spring源码
约16M,先下载,github下砸速度很慢,建议不要直接用idea的import from version control。为方便大家下载,我已上传到CSDN资源,免费快速下载【https://download.csdn.net/download/u013998466/12532966】
二、下载安装Gradle
安装教程同JDK,下载后解压到任意目录,添加系统环境变量后,在cmd命令行输入gradle -v
能正确显示即可
三、修改编译配置
1、修改源码根目录的build.gradle,增加阿里云镜像库
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
2、修改源码根目录的settings.gradle,增加阿里云镜像库
3、修改源码根目录的gradle.properties,增加jdk路径和jvm内存
4、修改idea配置,解决控制台中文乱码问题。
通过Help->Edit Custom VM Options,增加-Dfile.encoding=UTF-8
四、预编译spring源码
打开源码根目录的import-into-idea.md
,可以看到预编译命令
在源码根目录启动cmd命令行,执行gradlew :spring-oxm:compileTestJava
进行预编译(本人预编译耗时31分钟)
五、导入idea编译spring源码
1、导入项目,选择Gradle
2、修改idea的gradle配置
3、等待自动编译完成(若没有自动编译,可在idea右侧的Gradle面板,选择项目的Tasks->other->compileTestJava)
六、测试源码
1、新建一个测试module
2、在build.gradle里面增加依赖 compile(project(":spring-context"))
3、新建测试类
//包扫描
@Configuration
@ComponentScan("com.example")
public class Appconfig {
}
//服务bean
@Service
public class TestService {
public void test(){
System.out.println("啦啦啦");
}
}
//测试bean获取
public class Test {
public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(Appconfig.class);
applicationContext.getBean(TestService.class).test();
}
}
4、结果输出
至此,完成编译,可以进行愉快而枯燥的源码学习啦!