文章目录

  • 前言
  • 搭建流程
  • 详细流程
    • 1. 下载sprign源码
    • 2. 安装gradle
    • 3. 设置spring源码配置文件
      • build.gradle文件设置
      • settings.gradle文件设置
      • gradle.properties文件设置
    • 4. idea编译及启动源码
    • 5. 测试spring源码
  • 总结

前言

最近学习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版本为例,教大家如何下载。

使用命令

方法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:程序小记

spring源码:idea搭建源码环境相关推荐

  1. 聊聊 Kafka:编译 Kafka 源码并搭建源码环境

    一.前言 老周这里编译 Kafka 的版本是 2.7,为啥采用这个版本来搭建源码的阅读环境呢?因为该版本相对来说比较新.而我为啥不用 2.7 后的版本呢?比如 2.8,这是因为去掉了 ZooKeepe ...

  2. linux 源码搭建lnmp_详解CentOS 7.0源码包搭建LNMP 实际环境搭建

    Centos7+Nginx1.11.7+MySQL5.7.16+PHP7.1.0+openssl-1.1.0c 一.linux 系统限制配置 1.关闭系统防火墙 systemctl stop fire ...

  3. 7 centos 源码安装samba_CentOS搭建WonderTrader开发环境及v0.5.4版本发布

    前言 之前发过一篇关于如何搭建WonderTrader开发环境的文章<从零搭建WonderTrader的开发环境>,帮助不少用户解决了一些编译源码的问题.因为笔者是在Ubuntu 18.0 ...

  4. FreeCAD v0.19源码编译与VS2017+Qt5环境搭建

    FreeCAD v0.19源码编译与VS2017+Qt5环境搭建_$firecat全宏的代码足迹$-CSDN博客一.环境准备VS2017,x64cmake-3.14.5-win64-x64.msiFr ...

  5. 源码编译搭建LAMP环境

    源码编译搭建LAMP环境   一.将 LAMP 相关软件包上传刡 linux 上 [root@node63 ~]# ls anaconda-ks.cfg      install.log        ...

  6. (01)ORB-SLAM2源码无死角解析-(01) 环境搭建,demo运行,ROS一键安装_清除各种疑难杂症

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的(01)ORB-SLAM2源码无死角解析-接如下(本文内容来自计算机视觉life ORB-SLAM2 课程课件): (0 ...

  7. ZooKeeper源码阅读心得分享+源码基本结构+源码环境搭建

    首发CSDN:徐同学呀,原创不易,转载请注明源链接.我是徐同学,用心输出高质量文章,希望对你有所帮助. 一.心得分享 如何阅读ZooKeeper源码?从哪里开始阅读?最近把ZooKeeper源码看了个 ...

  8. 2.2 Trino Windows开发环境搭建—源码修改篇

    1. 前言 在上一篇中,介绍了在Windows上搭建Trino开发环境所需要的组件.本篇文章,主要介绍通过修改源码,让Trino在Idea中运行起来. 2. 步骤 1)配置文件 Trino的配置文件位 ...

  9. (02)Cartographer源码无死角解析-(01) 环境搭建,demo运行,ROS一键安装_清除各种疑难杂症

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析链接如下: (02)Cartographer源码无死角解析-(00)目录_最 ...

  10. 【源码本地搭建】商城源码、环境、工具、过程、图解、前后端

    目录 源码准备: 源码本地部署 第一步:下载源码 第二步:环境准备 第三步:源码放网站目录下 第四步:浏览器打开本地网站 第五步:创建数据库,并连接 第六步:完成安装 源码准备: 下载地址: 网上随便 ...

最新文章

  1. hdu 5273(递推)
  2. ukt机器人_doc/readme/feishu.md · 贫道法号-乱来/PrometheusAlert - Gitee.com
  3. 做一个类似登录的循环
  4. Python风格总结:函数
  5. LeetCode 542. 01 Matrix
  6. 五年烧光 3.5 亿美金,互联网独角兽是如何把自己玩死的?
  7. Intellig idea导入项目第一次运行报错- Error running ‘Application‘: Command line is too long—— 解决方法
  8. 边信息(即对应的两个数组值)_Python 数据分析 NumPy 模块迭代数组nditer方法详解...
  9. 鸟哥-服务器 学习笔记
  10. java中web错误返回码,Java-Web3j Transfer.sendFunds()返回错误“天然气...
  11. eclipse优化配置
  12. Java基础篇——垃圾回收
  13. coco2017数据集百度网盘链接
  14. 2022-05 - 英语语法 - 16种时态终极详解
  15. 【LOJ】 #2520. 「FJOI2018」所罗门王的宝藏
  16. android Room框架学习
  17. 软件-未能加载文件或程序集.HRESULT:0x80131515解决方法
  18. 蛋白质结构预测方案总结
  19. Java、JSP电子政务系统毕业设计
  20. Leetcode刷题之二叉树遍历——迭代(显示栈)【CSDN博客】

热门文章

  1. 声明,本博客文章均为转载,只为学习,不为其他用途。感谢技术大牛的技术分享,让我少走弯路。...
  2. 在Hadoop集群上的Hive配置
  3. Mysql基本增删改查
  4. PHP获取一个数组的深度
  5. Eclipse maven构建springmvc项目
  6. [软件应用]官方下载Nero-9.4.13.2d_update.exe迅雷竟也报毒
  7. GetRows的用法详解
  8. 【C语言】04-函数
  9. python unpack 到数列_842. 将数组拆分成斐波那契数列(Python)
  10. python的计算_基于python实现的计算器