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
网友评论