- spring 5.0.x源码学习系列一: 构建spring源码
- spring 5.0.x源码学习系列六: 后置处理器Config
- spring 5.0.x源码学习系列四: AnnotationC
- spring 5.0.x源码学习系列五: AnnotationC
- spring 5.0.x源码学习系列八: 实例化bean之使用构
- spring 5.0.x源码学习系列七: 后置处理器Config
- spring 5.0.x源码学习系列十: 观察者设计模式与Spr
- spring 5.0.x源码学习系列三: AnnotationC
- spring 5.0.x源码学习系列九: FactoryBean
- Spring5.0源码学习系列之浅谈BeanFactory创建
spring 5.0.x源码学习系列之构建spring源码
一、环境准备
-
Spring 5.0.x源码下载:
git clone https://github.com/spring-projects/spring-framework.git -b 5.0.x
-
IntelliJ IDEA
-
Gradle 4.4.1(建议使用4.x版本, 5+以上的版本可能会有问题), 不需要下载gradle源码, 这里附带下载地址:https://gradle.org/next-steps/?version=4.4.1&format=bin, 配置Gradle环境变量(将解压后的文件夹中的gradle.bat目录配置到系统变量的path中即可, 防止多账号同时使用同一台机器的情况), 在命令行中输入
gradle -v
验证是否安装成功 -
打开IntelliJ IDEA并打开spring-framework文件夹(使用git clone的方式默认是这个文件夹), 若使用源码Download的方式那么文件夹的名称规则为spring-framework-分支名
-
配置IDEA中gradle
在这里插入图片描述
-
查看源码根目录的
import-into-idea.md
文件, 按照提示将spring-aspects
模块去除在这里插入图片描述
在这里插入图片描述
-
导入项目进行build, 若报错
No such property: value for class: org.gradle.api.internal.tasks.DefaultTaskDependencyPossible solutions: values
打开spring-beans.gradle
文件并将compileGroovy.dependsOn = compileGroovy.taskDependencies.values - "compileJava"
注释掉, 再重新build在这里插入图片描述
-
分别执行如下两个命令, 添加依赖
gradle objenesisRepackJar
gradle cglibRepackJar
-
编译
spring-oxm
模块
在这里插入图片描述
-
若出现
java: 找不到符号 符号: 变量InstrumentationSavingAgent 位置
错误, 编译下spring-instrument
模块即可
二、添加自己的模块
- build结束后, 可以自己添加一个模块, eg: 添加
spring-sumarry
模块在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
- 导入spring内部其他模块, eg:
spring-context
模块, 它是创建bean的核心模块. 选择刚刚创建的spring-sumarry
模块的build.gradle.kts文件, 并在dependencies标签中添加如下代码:compile(project(":spring-context"))在这里插入图片描述
最后
- 附上自己的spring学习记录: https://github.com/AvengerEug/spring
- 如果你觉得我的文章有用的话,欢迎点赞、收藏和关注。:laughing:
- I'm a slow walker, but I never walk backwards
网友评论