spring 5.0.x源码学习系列一: 构建spring源码

spring 5.0.x源码学习系列之构建spring源码

一、环境准备

  1. Spring 5.0.x源码下载: git clone https://github.com/spring-projects/spring-framework.git -b 5.0.x

  2. IntelliJ IDEA

  3. 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验证是否安装成功

  4. 打开IntelliJ IDEA并打开spring-framework文件夹(使用git clone的方式默认是这个文件夹), 若使用源码Download的方式那么文件夹的名称规则为spring-framework-分支名

  5. 配置IDEA中gradle
    spring 5.0.x源码学习系列一: 构建spring源码_第1张图片

  6. 查看源码根目录的import-into-idea.md文件, 按照提示将spring-aspects模块去除spring 5.0.x源码学习系列一: 构建spring源码_第2张图片spring 5.0.x源码学习系列一: 构建spring源码_第3张图片

  7. 导入项目进行build, 若报错No such property: value for class: org.gradle.api.internal.tasks.DefaultTaskDependencyPossible solutions: values
    打开spring-beans.gradle文件并将compileGroovy.dependsOn = compileGroovy.taskDependencies.values - "compileJava"注释掉, 再重新buildspring 5.0.x源码学习系列一: 构建spring源码_第4张图片

  8. 分别执行如下两个命令, 添加依赖

    • gradle objenesisRepackJar
    • gradle cglibRepackJar
  9. 编译spring-oxm 模块
    spring 5.0.x源码学习系列一: 构建spring源码_第5张图片

  10. 若出现 java: 找不到符号 符号: 变量InstrumentationSavingAgent 位置 错误, 编译下spring-instrument模块即可

二、添加自己的模块

  1. build结束后, 可以自己添加一个模块, eg: 添加spring-sumarry模块spring 5.0.x源码学习系列一: 构建spring源码_第6张图片spring 5.0.x源码学习系列一: 构建spring源码_第7张图片spring 5.0.x源码学习系列一: 构建spring源码_第8张图片spring 5.0.x源码学习系列一: 构建spring源码_第9张图片
  2. 导入spring内部其他模块, eg: spring-context模块, 它是创建bean的核心模块. 选择刚刚创建的spring-sumarry模块的build.gradle.kts文件, 并在dependencies标签中添加如下代码:compile(project(":spring-context"))spring 5.0.x源码学习系列一: 构建spring源码_第10张图片

最后

  • 附上自己的spring学习记录: https://github.com/AvengerEug/spring

你可能感兴趣的:(spring源码学习)