spring源码:idea搭建源码环境

前言

最近学习spring源码,在搭建源码环境时,折腾了一阵,这里对自己踩过的坑进行总结,方便大家搭建源码环境。

搭建流程

  1. 下载spring源码
  2. 安装gradle
  3. 设置spring源码配置文件
  4. idea编译及启动源码
  5. 测试spring源码

详细流程

1. 下载sprign源码

这里推荐大家去github下载,主要是保证大家一开始安装spring源码的版本是正确的,spring的源码地址:https://github.com/spring-projects/spring-framework,如下为github上的spring项目,使用默认的git clone命令进行下载的话,获取的将是最新的spring源码版本,我这边打开最新的版本是spring6.0,其jdk版本为jdk17,很显然大部分读者的jdk环境不够,而且学习spring6.0没必要。
在这里插入图片描述
那如何下载指定版本的spring源码呢,我以我学习的spring源码版本spring-v5.2.21.RELEASE版本为例,教大家如何下载。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6CU1bzVM-1650463208728)(./assets/2022-04-20-21-14-11.png)]

使用命令

方法1: git clone --branch [tags标签] [git地址] 
方法2: git clone --b [tags标签] [git地址]

相应地,为了下载spring-v5.2.21.RELEASE版本,使用如下命令即可。

git clone -b v5.2.21.RELEASE https://github.com/spring-projects/spring-framework.git

此外我们还应该构建spring-v5.2.21.RELEASE版本所使用的gradle版本,后续编译源码时最好保证安装的gradle与此对应。
在这里插入图片描述

其中标记1初表示为查看gradle版本的地址:spring-framework/gradle/wrapper/gradle-wrapper.properties,标记2处显示对应的gradle版本为:gradle-5.6.4-bin.zip

2. 安装gradle

前面介绍完了,spring源码如何下载,及其对应的gradle版本,本节只需要下载上节讲述的gradle版本即可,gradle下载地址:https://services.gradle.org/distributions/ ,对应的如下:
在这里插入图片描述

后面就解压及配置gradle环境变量。这里mac配置环境变量为例:
输入编辑配置文件变量

vim ~/.bash_profile   

gradle环境配置如下:

GRADLE_HOME=gradle-5.6.4解压后的全路径位置
export GRADLE_HOME
export PATH=$PATH:${GRADLE_HOME}/bin

最后输入“:wq”保存退出,并刷新下配置文件,输入如下命令

source ~/.bash_profile   

当输入

gradle -v

显示如下:
在这里插入图片描述

则表示gradle安装成功,至此大家完成了搭建spring源码环境的一半工作量。

3. 设置spring源码配置文件

设置spring源码配置文件,主要是方便后续编译spring源码,否则编译几个小时可能还为编译完成哦。

build.gradle文件设置

进入下载后的spring源码文件内,找到build.gradle文件,修改镜像配置如下:

		repositories {
			//阿里云仓库
			maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
			maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
			mavenCentral()
			//maven { url "https://repo.spring.io/libs-spring-framework-build" }
		}

并将configurations.all注释掉,如下:

	// configurations.all {
	// 	resolutionStrategy {
	// 		cacheChangingModulesFor 0, "seconds"
	// 		cacheDynamicVersionsFor 0, "seconds"
	// 	}
	// }
settings.gradle文件设置

进入settings.gradle文件,加入阿里云镜像

	repositories {
		maven { url "https://maven.aliyun.com/repository/public" }
		gradlePluginPortal()
		maven { url 'https://repo.spring.io/plugins-release' }
	}
gradle.properties文件设置

适当调大jvm的内存org.gradle.jvmargs

version=5.2.21.RELEASE
org.gradle.jvmargs=-Xmx4096M
org.gradle.caching=true
org.gradle.parallel=true
4. idea编译及启动源码

idea导入spring源码,如下:
在这里插入图片描述

选择build.gradle,以gradle方式导入,接着设置idea的gradle版本,配置如下:
在这里插入图片描述

两个标记的地方均为本地安装的gradle全路径位置。之后就开始编译spring源码文件,当出现bulid successful则表示编译成功。

5. 测试spring源码

完成上述的spring源码安装后,要确定其是否可运行,也就是测试下spring源码能否正常使用ioc、aop等功能,在spring源码文件目录下新建测试模块module,如下
在这里插入图片描述

接着,在测试模块下添加spring-context的依赖,具体位置如下:

dependencies {
    compile project(":spring-context")
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}

新建一个bean对象

@Repository
public class HelloBean {
	public void hello(){
		System.out.println("hello spring");
	}
}

配置注解扫描类

@ComponentScan("com.coderp")
@Repository
public class BeanConfig {
}

编写测试类

public class Test1 {
	public static void main(String[] args) {
		ApplicationContext applicationContext = new AnnotationConfigApplicationContext(BeanConfig.class);
		HelloBean helloBean = applicationContext.getBean(HelloBean.class);
		helloBean.hello();
	}
}

按照正常的spring源码环境搭建步骤,执行上述测试方法,一定能够输出“hello spring”。

总结

以下就是spring源码环境搭建的全部流程,希望对大家学习spring有所帮助,欢迎大家一起交流探讨。
wx:chengxuxiaoji
gzh:程序小记

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值