天天看點

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)——源碼環境搭建及遇到問題

2.可直接下載下傳或使用git将源碼clone到本地(沒下載下傳請自行下載下傳安裝),指令:git clone https://github.com/spring-projects/spring-framework.git

3.由于spring使用Gradle編譯的,需要配置Gradle系統變量

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

path中配置:

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

4.進入spring-framework目錄,gradlew.bat進行編譯,編譯成功,提示BUILD SUCCESS

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

補充(一定要執行):gradle clean eclipse 原因後面解釋

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

FILE--OPEN--選擇項目--項目類型選GRADLE,導入成功後,等待編譯完即可。

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題
spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

遇到的問題:

編譯完成後,點選Build-->Build Project報錯,如下:

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

報ralted gradle configuration was not found.仔細檢查了gradle配置,并無配錯

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

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

選擇File-->close project

初始界面,點選Import Project重新導入,導入後依舊是這個問題。

于是,把提示複制出來,上網查,有人建議重新整理Gradle,View-->Tool Window-->Gradle,點選重新整理圖示,提示如下:

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

這個提示貌似有點價值,不能處理附加項目的配置。

同時發現Gradle報錯,初步可以定位問題在gradle上:

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

gradle安裝配置都沒問題,難道是版本問題?

一級目錄發現gradle.properties檔案,打開

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

而我gradle版本用的4.4,會不會是這個問題,于是将gradle版本更新到5.0,重新導入編譯還是不行,報錯!

于是删除了gradle的本地倉庫的資料,預設C:/user/ ,查資料(https://www.cnblogs.com/1540340840qls/p/7860803.html),運作gradle clean eclipse,于是執行,結果報錯,如下:

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

根據網址查到:

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

最終還是版本問題,5.0以上com.gradle.buildscan版本最少需要2.0.2,而spring對應的是1.8,是以需要grade4.1-4.1.0,再重新安裝,順利下載下傳依賴包。

spring-framework源碼閱讀(1)——源碼環境搭建及遇到問題

我大概總共花了2個小時左右下載下傳完,這是第二次重新編譯,一位第一次編譯卡住,重新編譯一次。

導入IDEA,重新編譯,報這個錯:

總結:一般部署源碼,使用部署工具,如果不成功,原因的大緻方向:

1.執行初始化時初始配置錯誤,可能是步驟問題,這種可能性比較小

2.相關工具的版本問題,這類問題非常頻繁,在部署之前一定要

由于之前沒接觸過Gradle,有一種陌生感,但實際上可以了解為類似Maven的工具。遇到新的問題不能慌,一定是哪裡有問題,首先要确定問題定位和方向,确定了定位和方向,再通過可能性排查,逐漸定位問題并解決問題。另外思路也要廣一點,可能一種方法無法定位問題,多試試其他方法。

繼續閱讀