• 深入浅出Spring源码(一)构建Spring源码阅读环境


    本文环境:windows10 + spring-5.3.22 + gradle-7.2 + IDEA2020 + jdk11


    1.下载spring-framework源码

    🔥 地址:https://github.com/spring-projects/spring-framework/releases

    在这里插入图片描述

    2.下载gradle工具

    🔥地址https://gradle.org/releases/

    在这里插入图片描述
    ✨解压缩即可
    在这里插入图片描述
    ✨配置环境变量

    ① GRADLE_HOME : gradle工具路径
    ② GRADLE_USER_HOME : gradle依赖保存路径,如果不配置会默认在C盘用户目录下生成.gradle文件
    ③ path : %GRADLE_HOME%\bin

    >
    在这里插入图片描述
    在这里插入图片描述

    ✨测试 gradle -v
    在这里插入图片描述

    ✨添加初始化脚本

    📑在init.d目录下添加的脚本,每次build之前都会被执行

    在这里插入图片描述
    在这里插入图片描述
    init.gradle内容如下(注意协议是https,否者会报不安全异常):

    allprojects{
        repositories {
            def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/nexus/content/groups/public'
            def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/nexus/content/repositories/jcenter'
            all { ArtifactRepository repo ->
                if(repo instanceof MavenArtifactRepository){
                    def url = repo.url.toString()
                    if (url.startsWith('https://repo1.maven.org/maven2')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                        remove repo
                    }
                    if (url.startsWith('https://jcenter.bintray.com/')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                        remove repo
                    }
                }
            }
            maven {
                url ALIYUN_REPOSITORY_URL
                url ALIYUN_JCENTER_URL
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    3.修改build.gradle配置

    📚找到spring-framework-5.3.22目录下的build.gradle文件,将repositories变量的内容修改为如下

    	repositories {
    		maven { url "https://maven.aliyun.com/repository/public" }
    		maven { url "https://maven.aliyun.com/repository/apache-snapshots" }
    		maven { url "https://maven.aliyun.com/repository/gradle-plugin" }
    		maven { url "https://repo.springsource.org/plugins-release" }
    		maven { url "https://repo.spring.io/libs-spring-framework-build" }
    		mavenCentral()   
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    📚新版本需要将源码提交到本地仓库,否者构建过程中可能会报错(但是没影响,可以忽略)

    在spring-framework-5.3.22目录下打开git进行如下三步操作(有点耗时)

    git init ---->创建一个新的本地仓库
    git add * ------>将所有文件保存到暂存区
    git commit -m ‘spring’ ------->提交到本地仓库

    在这里插入图片描述

    4.导入IDEA步骤

    🍀找到spring-framework-5.3.22目录下的import-into-idea.md文件
    在这里插入图片描述
    根据官方提供的四个步骤进行操作

    1. 预编译spring-oxm

    windows : gradlew :spring-oxm:compileTestJava(在cmd窗口,而不是powershell)
    Linux : ./gradlew :spring-oxm:compileTestJava

    在这里插入图片描述
    2. 导入IDEA

    Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)

    统一编码为UTF-8
    在这里插入图片描述
    选择JDK版本
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


    3. 排除spring-aspect模块

    如果不想要排除不点开即可,否者点开会报错(就需要重启idea)

  • 相关阅读:
    使用Powershell修改文件时间
    xlnet+bilstm实现菜品正负评价分类
    【大画数据结构】第二话 —— 无头单链表的基本操作
    Flask框架-1-[群聊]: flask-socketio实现websocket的功能
    justjavac:从辍学到成为Deno核心代码贡献者,我的十年编程生涯
    关于nginx升级--存在0day漏洞
    C++学习——类其实也是一种作用域
    搭建简易Spring-ioc框架
    Python语句和循环
    机器学习强基计划2-1:一文总结熵——交叉熵、相对熵、互信息(附例题分析)
  • 原文地址:https://blog.csdn.net/Kevinnsm/article/details/126209613