使用idea和gradle编译Spring源码

前言

最近想进一步了解spring框架的底层代码,所以自己按照网上资料用IEDA和gradle搭建spring源码编译,在这过程中遇到很多的坑,自己花了很长的时间解决,所以我想写这篇博客帮助一些初学者避免不必要的踩坑。

步骤:

1.下载gradle,注意版本不要太高,我最开始下的版本过高(gradle-5.2),导致出现一些令人头大的错误。花了很长时间,错误也没有解决,所以我就下了一个gradle-4.1这个版本。

  • 直接下载bin压缩包即可
    使用idea和gradle编译Spring源码_第1张图片
  • 下载网站:https://services.gradle.org/distributions/
  • 下载链接

2.解压gradle安装包,gradle环境变量配置

  1. 右击此电脑选择属性
    使用idea和gradle编译Spring源码_第2张图片
  2. 进入高级系统设置
    使用idea和gradle编译Spring源码_第3张图片
  3. 进入环境变量
    使用idea和gradle编译Spring源码_第4张图片
  4. 在系统变量中选择path并进入
    使用idea和gradle编译Spring源码_第5张图片
  5. 点击新建并将路径复制
    使用idea和gradle编译Spring源码_第6张图片
  6. 检验安装是否成功
    • 在命令行输入gradle -v即可
      使用idea和gradle编译Spring源码_第7张图片

在github上下载spring-framework-5.0.x压缩包

  • 下载网站:https://github.com/spring-projects/spring-framework/tree/5.0.x

  • 下载链接

  • 选择spring-framework版本
    使用idea和gradle编译Spring源码_第8张图片

  • 下载
    使用idea和gradle编译Spring源码_第9张图片

在idea中打开spring-framework文件

  1. 打开IEDA,选择open
    使用idea和gradle编译Spring源码_第10张图片
    2.选择解压后的spring-framework文件后
    使用idea和gradle编译Spring源码_第11张图片
  2. 接下来是一个漫长的等待过程
    在这里插入图片描述
  3. 下载结束后,编译文件,点击Build -> Build Project
    使用idea和gradle编译Spring源码_第12张图片
  4. 由于缺少2个jar包,所以编译会出错
    使用idea和gradle编译Spring源码_第13张图片
  5. 解决方法
  • 点击idea右侧的gradle
    在这里插入图片描述
  • 找到cglibRepackJar和objenesisRepackJar,然后点击
    使用idea和gradle编译Spring源码_第14张图片
  1. 然后在重新编译,步骤4操作,如果出现Aspect这类错误,可忽略。

测试环境是否成功

  1. 创建一个Module
  • 第一步
    在这里插入图片描述
  • 第二步
    使用idea和gradle编译Spring源码_第15张图片
  • 第三步
    使用idea和gradle编译Spring源码_第16张图片
  • 然后就一直往下就行
  1. 创完后会有这样一个目录
    使用idea和gradle编译Spring源码_第17张图片
  2. 在build.fradle中导入spring核心包
    使用idea和gradle编译Spring源码_第18张图片
  3. 创建一个包,和两个类
    在这里插入图片描述
package com;

public class Test {
	public void hello(){
		System.out.println("安装成功");
	}
}

package test;

import com.dao.User;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Test {
	public static void main(String[] args) {
		AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext();
		annotationConfigApplicationContext.register(Test.class);
		annotationConfigApplicationContext.refresh();

		Test test = annotationConfigApplicationContext.getBean(User.class);
		test.hello();
	}
}

5.执行main方法
在这里插入图片描述

大功告成!!!!!!!

你可能感兴趣的:(spring)