Spring是目前java语言中最流行使用最广泛的的轻量型框架,了解实现的过程能够帮助我们更好理解框架的执行逻辑,那么我们如何下载导入Spring源码进行开发测试?

一、下载配置gradle环境

1.1、下载gradle

从Spring5开始,Spring官方开始使用gradle构建环境,因此要执行Spring源码,首先要安装gradle环境,每个Spring源码对应的gradle版本都不一样,兼容性也不同,因此要找到与Spring版本对应的gradle版本,具体的配置在Spring项目的gradle\wrapper\gradle-wrapper.properties文件下:

我们直接拿到这个地址将https\://改成https://便可以下载gradle,也可以直接去gradle官网直接下载:https://gradle.org/releases/

1.2、配置gradle环境

gradle和maven一样,下载gradle后解压即可用,但是为了方便还需要配置环境变量。

1.3、校验gradle环境

配置完环境变量,输入cmd打开窗口,输入gradle -v,出现如下信息即表示配置成功

二、导入Spring源码

2.1、下载Spring源码

Spring源码地址为 GitHub - spring-projects/spring-framework: Spring Framework

在下载的时候可以选择自己想查看的版本下载,建议直接下载对应的zip包

2.2、编译Spring源码

刚下载完Spring源码后需要使用gradle进行编译,进入Spring源码的根目录库下,输入cmd,进入黑窗口,在根目录下执行gradlew.bat (mac或linux下是 gradle)

注意:如果是第一次使用gradle,下载会比较慢,可以像maven一样配置下仓库和代理地址,下载速度会快很多。

配置如下:

在gradle的根目录创建build.gradle文件,键入下面代码即可

allprojects{repositories {//maven {url 'file:///D:/ruanjian/maven_repository'}//mavenLocal()maven {url 'https://maven.aliyun.com/repository/central'}maven {url 'https://maven.aliyun.com/repository/jcenter'}maven {url 'https://maven.aliyun.com/repository/public'}maven {url 'https://maven.aliyun.com/repository/google'}maven {url 'https://maven.aliyun.com/repository/gradle-plugin'}maven {url 'https://maven.aliyun.com/repository/grails-core'}maven {url 'https://maven.aliyun.com/repository/spring'}maven {url 'https://maven.aliyun.com/repository/spring-plugin'}maven {url 'https://maven.aliyun.com/repository/spring-snapshots'}mavenCentral()}
}

出现如下图所示,即为编译成功。

2.3、idea导入Spring源码

打开idea,找到File->New->Project from Existing Sources,找到Spring源码项目

选择gradle,导入即可

修改jdk版本

到此Spring源码导入即可完成,等待Idea自动构建即可。

三、常见的问题

3.1、jdk和gradle版本不匹配

出现上诉错误要看下自己的jdk版本和gradle版本是否匹配

3.2、Spring编译gradle和自己的gradle版本不一致

一般出现 Build.gradle: A problem occurred evaluating project ':app' 表示你本地的gradle版本和Spring源码的编译版本不兼容,需要去gradle\wrapper\gradle-wrapper.properties下确认Spring源码的gradle版本

3.3、其他错误

Spring源码的根目录下有个import-into-idea.md文件,可以参考官方的运行步骤执行一遍

Spring源码之idea导入Spring源码相关推荐

  1. Spring中使用XML方式导入Spring配置文件,Boot中使用全注解导入Spring配置

    目录 Spring中的方法 Spring Boot中的方法 Spring中的方法 @ImportResource:导入Spring的配置文件,让配置文件里面的内容生效: Spring Boot里面没有 ...

  2. 《Spring》第一篇 IDEA导入Spring源码

    目录 一. 下载源码 二. gradle 1. gradle 下载 2. 环境变量的配置 配置 GRADLE_HOME 配置 GRADLE_USER_HOME 三. Spring源码的配置文件修改 s ...

  3. android studio im源码,Android Studio 导入 AOSP 源码

    有了 AOSP 源码,接下来就是如何看了,可以直接文本看,可以用 Source Insight,我当然选择 Android Studio,Android Studio 是我熟悉且十分强大的工具.问题来 ...

  4. android sutdio导入源码教程,《AndroidStudio导入安卓源码-idegen》---可方便查看安卓源代码...

    idegen是Android源码中的一个模块,需要编译一下.生成一个jar包.然后再进行构建生成AndroidStudio配置相关文件. > 什么是idegen 要将Android系统源代码工程 ...

  5. effective java英文版pdf_Java之Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse...

    框架学习前言 这个模块是面向Spring的,Spring的学习我是这么想的: 1.简单介绍Spring,主要是从网上借鉴一些重点 2.尽量说明清楚Spring的使用方法以及细节点 3.尽量以自己的理解 ...

  6. irule jar包无法导入_Java之Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse...

    框架学习前言 这个模块是面向Spring的,Spring的学习我是这么想的: 1.简单介绍Spring,主要是从网上借鉴一些重点 2.尽量说明清楚Spring的使用方法以及细节点 3.尽量以自己的理解 ...

  7. JAVA_OA管理系统(三)番外篇:Myeclipse导入Spring源码包

    世界上只有10种程序员,看源码的和不看源码的: 今天,我们要看源码: 首先先用Ctrl键随便找个spring或者中的类,(其实myeclipse和eclipse导入源码包都是一样的) 第二步: 然后是 ...

  8. MyEclipse中导入Spring 4.0源码

    到Spring的官网下载开发包,即: ,解压缩后的文件目录如下: 在MyEclipse的编辑窗口,按 Ctrl + Shift + T 打开查看源代码窗口,输入你想查找的类,如下图所示: 当你点击OK ...

  9. spring源码编译和导入eclipse

    1.下载源码并解压 https://github.com/spring-projects/spring-framework/tree/v3.2.5.RELEASE 2.源码编译 cmd进入spring ...

  10. idea导入spring源码_Spring源码入门到放弃(一):环境准备

    今天开始Spring源码的学习,年后面试Java高级研发岗,Spring底层的知识是必问知识,而且面试官问的很深入,以前没系统的了解过,现在开始恶补. 在此记录学习过程,不定期更新学习笔记.希望对大家 ...

最新文章

  1. 开发者转型AI看过来,这是一场汇聚中美顶尖专家的AI盛会
  2. plsql执行command命令控制台出现乱码_设计模式系列 — 命令模式
  3. matlab中如何画隐函数方程组,怎样用matlab画隐函数
  4. getHibernateTemplate()和getSession()的区别
  5. 关于props的注意事项!
  6. java 定时_Java线上定时任务不定期挂掉问题分析
  7. 王道考研学习笔记IP数据报格式IP数据报分片(超详细)
  8. BZOJ2150: 部落战争
  9. 基本sql语句--触发器
  10. C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。
  11. System.Diagnostics.Process的常见用法
  12. ContextLoaderListener和Spring MVC中的DispatcherServlet加载内容的区别
  13. SQL 怎么创建一个只有查询数据库用户权限呢
  14. idea mac xml注释快捷键
  15. OSPF基础知识及配置命令
  16. 自动控制原理思维导图
  17. 被罗马人称为的三大蛮族去向和苏格拉的独立
  18. 6 生僻字_教改后注音书还有必要读吗?别纠结,6-8岁注音书我推荐这10套
  19. web前端CSS选择符:表示要定义样式的对象
  20. 秒杀抢购活动性能测试记录

热门文章

  1. 09-JS的事件流的概念(重点)
  2. cve-2018-2893 WebLogic
  3. SAM4E单片机之旅——4、LED闪烁之PWM
  4. poj 1159 (DP LCS)
  5. [DesignPattern]各自用一句话来概括MVC、MVP、MVVM的差异特点
  6. [翻译]XNA 3.0 Game Programming Recipes之six
  7. PYQT之- QObject与线程QThread的关系
  8. Windows 10 系统下配置java的classpath
  9. QT-程序依赖打包-windeployqt方式(简述版)
  10. 使用bintray-release工具上传gradle项目至bintray.com