idea下编译Spring源码

前面我们已经学习mybatis的源码,今天我们开始Spring源码的阅读之旅。阅读Spring的源码的第一步当然是编译Spring源码。首先我们要去GitHub上将spring源码给clone下来。

笔者编译环境如下:

idea的版本:idea2020.2
gradle版本:5.64
Spring版本:5.28

首先我们先进入Spring的官网,具体如下:

在这里插入图片描述

我们首先将Spring下载下来,具体的地址:Spring编译源码,然后将下载下来的压缩包进行解压

这个时候Spring的源码就准备好了,就要开始我们的编译之路了。那怎么编译呢?看下我们Spring的编译教程吧,具体如下:

在这里插入图片描述

在这里插入图片描述

按照上面的文档来说,我们需要一个JDK8以上的环境,笔者使用的是JDK8;然后通过 git clone命令获取一份源码,这个事情笔者已经做完了;然后就是去项目的根目录下运行./gradlew build

这个时候我们不要着急去运行这个文件;这个命令一运行会下载一份gradle到我们本地,然后通过下载好的gradle去编译Spring源码;为什么运行这个命令会自动下载gradle呢?从那下载呢?版本是什么呢?

gradlew就是我们需要运行的命令;但是现在先不要着急运行;因为这个命令会去读取一个文件;这个文件当中配置gradle的版本和下载地址;一旦运行就是自动下载,有时候需要翻墙去下载,很多时候都会下载失败,就算下载过来了目录也是他自动指定的,下载过来后解压的目录等等都是在那个文件中配置了;索性我们将这个配置文件给修改了。

这个配置文件的路径–spring-framework\gradle\wrapper\gradle-wrapper.properties我们要修改是gradle的下载地址,修改成本地。这个时候我们打开对应的文件如下:

在这里插入图片描述

具体的配置的项的意思如下:

distributionBase=下载后的目录,自己配置好。GRADLE_USER_HOME 如果是windows系统默认问c:\Users\你的用户.gradle
distributionPath=会自动拼接好distributionBase
zipStoreBase=解压的目录

现在我们需要自己手动的配置好gradle,由于指定的gradle版本是5.64,所以我们下载一个gradle为5.64的版本,对应的下载地址,如果下载不下来,可以去笔者的资源中下载,然后就是配置GRADLE_USER_HOME这个变量的位置了,Windows中配置就是配置环境变量,由于笔者是使用Mac,所以这儿只讲Mac的配置流程。

首先我们下在gradle放在指定的目录下:

在这里插入图片描述

然后配置环境变量

GRADLE_USER_HOME=/Users/king/JavaLibrary/gradle-5.64
export GRADLE_USER_HOME

在这里插入图片描述

然后更新一下配置

source .bash_profile

在这里插入图片描述

这个时候我们需要修改原来的gradle-wrapper.properties,修改的内容如下:

distributionUrl=file\:/Users/king/JavaLibrary/gradle-5.64/gradle-5.6.4-bin.zip
#distributionUrl=file\:///d\:/Users/king/JavaLibrary/gradle-6.6.1-bin.zip

在这里插入图片描述

下面的配置是对于Windows的配置的。这个时候我们还需要gradle的下载仓库,具体的操作如下:

maven {url 'https://maven.aliyun.com/nexus/content/groups/public/'} //阿里云
maven {url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}

在这里插入图片描述

这个时候执行编译的命令,具体如下

./gradlew build
#Windows下执行gradlew.bat

在这里插入图片描述

在这里插入图片描述

刚开始编译是报错,但是没有关系,我们再编译一次

在这里插入图片描述

在这里插入图片描述

可以看到我们第二次就编译成功了。下面的错误我们不用管。后面我们就开始导入idea中去(刚才编译的网站有说明),这个时候我们执行下面的命令

./gradlew :spring-oxm:compileTestJava
#Windows下的命令gradlew :spring-oxm:compileTestJava

具体的运行的结果如下:

在这里插入图片描述

首先我们要对idea进行一些设置,具体如下:

在这里插入图片描述

然后选择已存在的源进行导入。

在这里插入图片描述

然后选中原来的项目。具体如下:

在这里插入图片描述

记住上面要选build.graadle文件,然后等待idea建立好缓存

在这里插入图片描述

这个时候我们需要修改如下的设置,具体如下:

在这里插入图片描述

然后我们需要修改运行的配置为idea运行,不然每次idea运行都会通过gradle去编译运行——gradle运行编译特别慢;需要改成idea自己编译运行。具体如下:

在这里插入图片描述

再次说明一下这里不是一定要改,但是如果你不改用默认的则会特别慢,改成idea快的不止一点点。

改完之后便可以建一个子model来测试了,但是一定得建gradle的项目,因为spring源码这个父项目就是用gradle来开发的

在这里插入图片描述

在这里插入图片描述

然后创建好添加以下的依赖。

compile(project(":spring-context"))

在这里插入图片描述

然后开始开始完善项目的其他

配置类的代码

package com.ys;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com.ys")
public class AppConfig {
}

service的代码

package com.ys;

import org.springframework.stereotype.Component;

@Component
public class IndexService {
}

测试类的代码

package com.ys;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
	public static void main(String[] args) {
		AnnotationConfigApplicationContext ac =
				new AnnotationConfigApplicationContext(AppConfig.class);
		System.out.println(ac.getBean(IndexService.class));
	}
}

然后点击运行。

在这里插入图片描述

可以看到我们Spring的源码就编译成功,同时测试也成功了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值