查看编译spring5源码(基于IDEA)

查看编译spring5源码(基于IDEA)

使用工具介绍:Gradle+Idea2019

1.gradle

它是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。
操作步骤如下:
第一步:我们需要去gradle官网去下载gradle,对于gradle版本要求必要保证在需要4.2以上(这里下载的是6.2版本)

gradle下载地址:https://services.gradle.org/distributions/

查看编译spring5源码(基于IDEA)_第1张图片
gradle下载时候有三个包,gradle-src为gralde源码,gradle-bin为安装包,gradle-all为源码加安装包,我们需要下载安装文件到本地
第二步:配置gradle
需要在我的电脑-----属性------高级系统设置----环境变量中添加你解压的目录的路径:新建环境变量GRADLE_HOME
查看编译spring5源码(基于IDEA)_第2张图片
查看编译spring5源码(基于IDEA)_第3张图片
第三步:然后在Path路径中添加**%GRADLE_HOME%/bin即可
查看编译spring5源码(基于IDEA)_第4张图片
第四步:配置完成以后
WIN + R**,输入cmd进入dos界面,键入命令gradle -v,若如下图正确输出版本信息即可:上面的6.2版本网速原因没下载下来,后来还是下载了4.9版本(校园wifi外网访问不给力!)
查看编译spring5源码(基于IDEA)_第5张图片
第五步:配置grale的本地仓库
配置gradle默认的本地仓库,gradle和maven类似,工作时也需要一个本地仓库,管理工程jar包,可做如下配置,新增GRADLE_USER_HOME,路径配置成需要的本地仓库路径即可
查看编译spring5源码(基于IDEA)_第6张图片

2.IDEA2019的Spring源码配置

此时我们的gradle相当于已经配置完毕,接下我们需要去下载spring的源码:这里下载的spring.5.0.x版本的,我们可以去github去下载:

spring源码github下载地址: https://github.com/search?q=spring-fra
打开以后选择你想要的spring源码版本,这里我选择的是spring5.0.x版本

查看编译spring5源码(基于IDEA)_第7张图片
查看编译spring5源码(基于IDEA)_第8张图片
最后我们需要基于idea进行spring源码环境的搭建:
通过idea-打开之前下载的spring-5.0.x源码项目文件夹(File-----Open)
1.因为spring里面的其他项目都必须需要依赖spring-corespring-oxm模块才能运行,所以我们导入后需要先编译这两个模块包

2.spring-aspects需要依赖三方jar,可能导致编译时会报错,但是不影响我们编译使用,我们先不处理,后续可以添加第三方的jar包

3.使用工具编译时,可能会出现内存溢出情况,这里我们编译时需要在虚拟机属性中vm options中增加相关参数

   -XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m

配置流程如下:
设置gradle:注意以下几点:
**1.开启User auto-import:自动加载导入依赖所需的jar包

2.jdk版本不要太高,这里我的jdk我jdk1.8_0.15.2.1

3.为了防止内存溢出,按上面的配置VM options参数**
查看编译spring5源码(基于IDEA)_第9张图片
编译过程中如果出现如下错误,点击open file,将框中内容注释即可
查看编译spring5源码(基于IDEA)_第10张图片
操作完毕,此时项目会编译build下载相应的jar包:耗时较长,可以去干点别的事!
当项目构建完成之后,便可开始编译,编译很简单,即见下图:

查看编译spring5源码(基于IDEA)_第11张图片
首先在编译spring-bean的时候,会报错缺少依赖,则此时执行以下命令,进行相关依赖的下载:
查看编译spring5源码(基于IDEA)_第12张图片
上面的步骤执行完了后,编译moudle即可,依次我们按照上面的编译方法进行spring-oxm,spring-context,spring-bean模块的编译

最后我们可以建立自己的基于gradle的模块,进行代码测试:
在这里插入图片描述
第一步:首先是build.gradle配置文件引入相关的依赖:
查看编译spring5源码(基于IDEA)_第13张图片
以下是spring-context的依赖中对spring-instrument的依赖的引入:
查看编译spring5源码(基于IDEA)_第14张图片
第二步:测试的程序的编写:

public class UserDao {

	public void run(){
		System.out.println("userDao running....");
	}
}

public class Test {

	public static void main(String[] args) {
		//创建AnnotationConfigApplicationContext
		AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
		//注册备案实例对象
		context.register(UserDao.class);
		//进行初始化
		context.refresh();
		//获取bean实例对象
		UserDao userDao = (UserDao)context.getBean("userDao");
		userDao.run();
	}
}

输入结果:
userDao running....

此时表示idea+gradle配置spring5.0.x源码配置成功,即此时你可以进行spring的查看,以及修改操作 !
PS:如果在进行依赖注入时少了以上的instrument依赖的注入,可能会在你进行测试程序时,出现以下错误提示:
在这里插入图片描述

你可能感兴趣的:(查看编译spring5源码(基于IDEA))