spring-framework源码阅读(1)——源码环境搭建及遇到问题

准备工作 git 下载地址:https://git-scm.com/downloads、gradle下载地址:https://gradle.org/releases/ (补充:需要对应spring版本,spring用5.0.x,推荐gradle版本4.1-4.1.0,以防进坑,原因后面解释)

1.下载spring-framework,官网地址:https://spring.io/projects/spring-framework,spring将源码发布在github上,点击右侧github图标进入github,点击branch选择版本,我选择的5.0.x版本

spring-framework源码阅读(1)——源码环境搭建及遇到问题_第1张图片

2.可直接下载或使用git将源码clone到本地(没下载请自行下载安装),命令:git clone https://github.com/spring-projects/spring-framework.git

3.由于spring使用Gradle编译的,需要配置Gradle系统变量

spring-framework源码阅读(1)——源码环境搭建及遇到问题_第2张图片

path中配置:

4.进入spring-framework目录,gradlew.bat进行编译,编译成功,提示BUILD SUCCESS

spring-framework源码阅读(1)——源码环境搭建及遇到问题_第3张图片

补充(一定要执行):gradle clean eclipse 原因后面解释

5.到处IDE,此处我用的IDEA

FILE--OPEN--选择项目--项目类型选GRADLE,导入成功后,等待编译完即可。

spring-framework源码阅读(1)——源码环境搭建及遇到问题_第4张图片

spring-framework源码阅读(1)——源码环境搭建及遇到问题_第5张图片

遇到的问题:

编译完成后,点击Build-->Build Project报错,如下:

报ralted gradle configuration was not found.仔细检查了gradle配置,并无配错

spring-framework源码阅读(1)——源码环境搭建及遇到问题_第6张图片

很奇怪。于是,按照提示,re-import the gradle project. 

选择File-->close project

初始界面,点击Import Project重新导入,导入后依旧是这个问题。

于是,把提示复制出来,上网查,有人建议刷新Gradle,View-->Tool Window-->Gradle,点击刷新图标,提示如下:

这个提示貌似有点价值,不能处理附加项目的配置。

同时发现Gradle报错,初步可以定位问题在gradle上:

spring-framework源码阅读(1)——源码环境搭建及遇到问题_第7张图片

gradle安装配置都没问题,难道是版本问题?

一级目录发现gradle.properties文件,打开

spring-framework源码阅读(1)——源码环境搭建及遇到问题_第8张图片

而我gradle版本用的4.4,会不会是这个问题,于是将gradle版本更新到5.0,重新导入编译还是不行,报错!

于是删除了gradle的本地仓库的数据,默认C:/user/ ,查资料(https://www.cnblogs.com/1540340840qls/p/7860803.html),运行gradle clean eclipse,于是执行,结果报错,如下:

根据网址查到:

spring-framework源码阅读(1)——源码环境搭建及遇到问题_第9张图片

最终还是版本问题,5.0以上com.gradle.buildscan版本最少需要2.0.2,而spring对应的是1.8,所以需要grade4.1-4.1.0,再重新安装,顺利下载依赖包。

spring-framework源码阅读(1)——源码环境搭建及遇到问题_第10张图片

我大概总共花了2个小时左右下载完,这是第二次重新编译,一位第一次编译卡住,重新编译一次。

导入IDEA,重新编译,报这个错:

总结:一般部署源码,使用部署工具,如果不成功,原因的大致方向:

1.执行初始化时初始配置错误,可能是步骤问题,这种可能性比较小

2.相关工具的版本问题,这类问题非常频繁,在部署之前一定要

由于之前没接触过Gradle,有一种陌生感,但实际上可以理解为类似Maven的工具。遇到新的问题不能慌,一定是哪里有问题,首先要确定问题定位和方向,确定了定位和方向,再通过可能性排查,逐渐定位问题并解决问题。另外思路也要广一点,可能一种方法无法定位问题,多试试其他方法。

 

你可能感兴趣的:(源码阅读)