00、Gradle的安裝與配置及Spring源碼導(dǎo)入

1、前言

工欲善其事,必先利其器,本文主要講的是idea如何導(dǎo)入Spring源碼及編譯運(yùn)行相關(guān)的測(cè)試案例

2、下載Spring源碼

獲取spring源碼的方式多種多樣,這里我們就使用下載壓縮包的方式進(jìn)行下載。具體步驟如下:

  • 在github上找到spring源碼的倉(cāng)庫(kù)

  • 找到對(duì)應(yīng)的你想看的版本分支

  • 點(diǎn)擊code按鈕

  • 點(diǎn)擊Download ZIP進(jìn)行下載

  • 下載完成后進(jìn)行解壓

不過(guò)還是建議大家使用clone的方式下載

01、Spring源碼下載.png

3、gradle的下載安裝及配置

3.1、gradle簡(jiǎn)介

gradle是源于Apache Ant和Apache Maven概念的項(xiàng)目自動(dòng)化構(gòu)建開(kāi)源工具,它使用一種基于Groovy的的特定領(lǐng)域語(yǔ)言(DSL)來(lái)聲明項(xiàng)目設(shè)置,拋棄了基于XML的各種繁瑣配置,面向Java應(yīng)用為主。當(dāng)前其支持的語(yǔ)言暫時(shí)有Java、Groovy、Kotlin和Scala。

gradle是一個(gè)基于JVM的構(gòu)建工具,是一款通用靈活的構(gòu)建工具,支持maven, Ivy倉(cāng)庫(kù),支持傳遞性依賴(lài)管理,而不需要遠(yuǎn)程倉(cāng)庫(kù)或者是pom.xml和ivy.xml配置文件,基于Groovy,build腳本使用Groovy編寫(xiě)。

IDEA 2017.3以上版本支持。

3.2、下載

官方地址:https://gradle.org/

下載地址:https://gradle.org/releases/

官方提供了兩種下載方式,binary-only是只下載二進(jìn)制源碼,Complete(完整版)是下載源碼和文檔。如果有閱讀文檔的需求可以下載第二個(gè),沒(méi)有需要的下載Binary-only即可。

這里我選擇的是: gradle-5.6.4的binary-only版本(保持與下載的spring源碼的gradle需求一致 spring-framework-5.2.15.RELEASE\gradle\wrapper\gradle-wrapper.properties文件查看)

3.3、安裝

解壓安裝包到想安裝到的目錄即可。

3.4、配置

3.4.1、配置環(huán)境變量

1)、 新建變量

變量名:GRADLE_HOME

變量值:解壓到的目錄

02、環(huán)境變量gradle_home配置.png

同時(shí)別忘了在Path里面加上 %GRADLE_HOME%\bin

2)、新建變量

變量名:GRADLE_USER_HOME

變量值:自定義Gradle倉(cāng)庫(kù)目錄或者M(jìn)aven的倉(cāng)庫(kù)目錄

03、環(huán)境變量gradle_user_home配置.png

3)、驗(yàn)證

在cmd窗口輸入 gradle -v

04、gradle安裝完成之后的驗(yàn)證.png
3.4.2、配置gradle倉(cāng)庫(kù)源

在Gradle安裝目錄下的 init.d 文件夾下,新建一個(gè) init.gradle 文件,里面填寫(xiě)以下配置。

allprojects {
    repositories {
        maven { url 'file:///D:/apache/gradle_home'}
        mavenLocal()
        maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
        maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
        mavenCentral()
    }

    buildscript { 
        repositories { 
            maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
            maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
            maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
        }
    }
}

repositories中寫(xiě)的是獲取jar包的順序。先是本地的gradle倉(cāng)庫(kù)路徑;接著的mavenLocal() 是獲取Maven本地倉(cāng)庫(kù)的路徑;第三條和第四條是從國(guó)內(nèi)和國(guó)外的網(wǎng)絡(luò)上倉(cāng)庫(kù)獲取;最后的mavenCentral()是從Apache提供的中央倉(cāng)庫(kù)獲取jar 包。

4、配置IDEA中的gradle

在IDEA的File-->Settings...-->Build, Execution, Deployment-->Build Tools-Gradle。

在這里如果你設(shè)置了GRADLE_USER_HOME之后,IDEA就能自動(dòng)識(shí)別了。


05、配置IDEA中的gradle.png

5、使用idea導(dǎo)入Spring源碼

在IDEA的File-->New-->Project from Existing Sources...

06、IDEA導(dǎo)入Spring源碼步驟1.png

選擇下載好的Spring源碼目錄,然后點(diǎn)擊OK

06、IDEA導(dǎo)入Spring源碼步驟2.png

點(diǎn)擊"OK"后,選擇Import project from external model-->gradle點(diǎn)擊finish

06、IDEA導(dǎo)入Spring源碼步驟3.png

在編譯的過(guò)程中,需要更改一些gradle的配置

06、IDEA導(dǎo)入Spring源碼步驟4.png

配置好后,耐心等待即可。大約等個(gè)10分鐘左右就能編譯完成了哦。

6、創(chuàng)建測(cè)試module

下面就讓我們?cè)谠创a中創(chuàng)建個(gè)模板測(cè)試吧

選擇項(xiàng)目->右鍵->new module

07、創(chuàng)建測(cè)試module1.png

07、創(chuàng)建測(cè)試module2.png

07、創(chuàng)建測(cè)試module3.png

07、創(chuàng)建測(cè)試module4.png

7、遇到的問(wèn)題及解決方案

Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'git'

原因分析:zip 發(fā)行版主要是用來(lái)共享源代碼,但不一定用于構(gòu)建它。

參考出處:https://github.com/spring-projects/spring-framework/issues/24467

08、Spring源碼導(dǎo)入遇到的問(wèn)題1.png

解決方案:使用git clone的方式下載源代碼,或者忽略(不影響項(xiàng)目運(yùn)行)

Kotlin: warnings found and -Werror specified

原因分析:沒(méi)有 spring-cglib-repackspring-objenesis-repack

解決方案:

08、Spring源碼導(dǎo)入遇到的問(wèn)題2.png

解決方案出處:https://www.cnblogs.com/liuzhihang/p/spring-source-build.html

8、運(yùn)行測(cè)試類(lèi)

09、運(yùn)行結(jié)果示例.png

恭喜你,接下來(lái)你就可以為所欲為的debug學(xué)習(xí)Spring源碼了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容