文章目录
- 前言
- 搭建流程
- 详细流程
- 1. 下载sprign源码
- 2. 安装gradle
- 3. 设置spring源码配置文件
- build.gradle文件设置
- settings.gradle文件设置
- gradle.properties文件设置
- 4. idea编译及启动源码
- 5. 测试spring源码
- 总结
前言
最近学习spring源码,在搭建源码环境时,折腾了一阵,这里对自己踩过的坑进行总结,方便大家搭建源码环境。
搭建流程
- 下载spring源码
- 安装gradle
- 设置spring源码配置文件
- idea编译及启动源码
- 测试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版本为例,教大家如何下载。
使用命令
方法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:程序小记