Spring源码下载编译后调试流程

Spring源码下载编译后调试流程


最近想了解一下spring源码,于是准备下载源码编译一下,中间踩了不少坑,记录一下

版本

spring:5.2.0-release

gradle:5.6.4

安装gradle

gradle是类似maven的项目构建工具。spring官方使用gradle进行项目的构建(相比maven能极大提高项目构建的速度),因此需要首先安装gradle.

安装步骤:

  1. 登录gradle官网下载指定的安装包image-20230719192211318

  2. 解压

    image-20230719192539352

  3. 设置环境变量

    image-20230719192709318

image-20230719192737471

除了上述三个gradle变量以外,还要设置一个maven变量M2_HOME,否则gradle的build.gradle等配置文件中的mavenLocal()将会使用默认的maven仓库/user/用户名/.m2/repository

image-20230719192944977

  1. cmd下使用命令gradle -v验证是否安装成功

image-20230719193254587

  1. gradle根目录/init.d文件夹下新建文件init.gradle(更换镜像源,加快依赖下载速度)
allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
                    remove repo
                }
            }
        }
        maven {
            url REPOSITORY_URL
        }
    }
}

编译Spring

  1. github下载spring-framework-5.2.0-release并解压

  2. 编辑setting.gradle文件,更换镜像源

    image-20230719193603271

    repositories {
    	mavenLocal()
    	maven { url 'https://maven.aliyun.com/repository/public' }
    	maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
    	maven { url 'https://maven.aliyun.com/repository/spring' }
    }
    
  3. 编辑build.gradle文件,更换镜像源,共有两处需要修改

    image-20230719193803085

image-20230719193900808

repositories {
	mavenLocal()
	maven { url 'https://maven.aliyun.com/repository/public' }
	maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
	maven { url 'https://maven.aliyun.com/repository/spring' }
}
  1. 修改根目录/grade/wrapper/gradle-wrapper.properties文件,设置使用本地gradle,不然每次编译会从网上下载gradle

image-20230719200851556

  1. spring官方提供了导入idea及编译的主要步骤,点击项目根目录import-into-idea.md文档进行查看

    image-20230719194113767

  2. 根据文档,使用powershell 控制台输入命令./gradlew :spring-oxm:compileTestJava预编译spring-oxm模块,同时保险起见,执行命令./gradlew :spring-core:compileTestJava预编译spring-core模块。出现build successful提示表示编译成功

  3. 打开idea,点击file->new->project from existing source,找到项目根目录,点击build.gradle文件,确定,即可导入idea

调试

由于spring是使用gradle进行构建的,所以新建项目进行调试时,也要使用gradle

  1. 按如下步骤新建一个gradle构建的项目

    image-20230719194853742

image-20230719194921669

  1. 项目建好后,编辑该新建项目根目录下build.gradle.kts文件,添加依赖(要调试的模块)

    image-20230719195101354

  2. 项目结构

    image-20230719195145203

  • AppConfig

    @Configuration
    @ComponentScan("com.ningque.spring")
    public class AppConfig {
    }
    
    
  • MyService

    @Component
    public class MyService {
    }
    
    
  • 测试类

    public class Test {
    	public static void main(String[] args) {
    		AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
    		MyService bean = applicationContext.getBean(MyService.class);
    		System.out.println(bean);
    
    	}
    }
    
    

    观察 是否能正常打印对象地址,若能则表示调试成功

    image-20230719195417813

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值