Spring源碼完美導(dǎo)入IDEA的過(guò)程
小伙伴私信我說(shuō)想要研究下Spring的源碼,想讓我出一期教程來(lái)實(shí)現(xiàn)IDEA導(dǎo)入Spring源碼,今天它來(lái)了~
版本 :IDEA 2020.2.3 ;Spring 5.0.x ;gradle 4.4.1 ;
先從github上面把 spring 源碼下載下來(lái)并解壓:

切記:解壓完成后不要直接用IDEA 打開,因?yàn)镾pring 的源碼是用 gradle 構(gòu)建的。如果已經(jīng)用IDEA 打開了請(qǐng)刪除后重新解壓。
我們找到文件夾
spring-framework-5.0.x\gradle\wrapper
下的 gradle-wrapper.properties 文件,查看里邊的 gradle 版本,去官網(wǎng)下載。


下載完成之后把 gradle 的環(huán)境變量配置一下,可以用gradle -version 來(lái)驗(yàn)證 gradle 是否配置成功

在 USER_HOME/.gradle/ 下面新建 init.gradle 文件,將國(guó)外源換成國(guó)內(nèi)鏡像
allprojects {
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if(url.startsWith('https://repo1.maven.org/maven2/')||url.startsWith('https://jcenter.bintray.com/')){
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
maven {
url REPOSITORY_URL
}
}
}在 spring-framework-5.0.x 下打開git 的窗口執(zhí)行以下命令
./gradlew :spring-oxm:compileTestJava
該命令的作用是將 spring 轉(zhuǎn)成IDEA 可以導(dǎo)入的工程結(jié)構(gòu)。

如果你新開的 Windows 的 dos 窗口,先進(jìn)入源碼的目錄文件夾,執(zhí)行命令不用加前面的./
配置 IDEA 中的 gradle

使用 File -> open 把 Spring 工程導(dǎo)入到 IDEA中,并等待 jar 下載完成。
如遇報(bào)錯(cuò)信息:

在 build.gradle 中添加
maven { url "http://maven.aliyun.com/nexus/content/groups/public"}其目的就是為了換成國(guó)內(nèi)的鏡像(init.gradle 有時(shí)沒(méi)有生效)

編譯時(shí)報(bào)錯(cuò)如下:

原因是 gradle 和 gradle 插件版本過(guò)舊,更換更高的版本可以解決,但這個(gè)問(wèn)題只是提示,不影響編譯。
在 test 包中隨便找了一個(gè)單元測(cè)試運(yùn)行,成功運(yùn)行

以上就是今天的全部?jī)?nèi)容了。
到此這篇關(guān)于Spring源碼 完美導(dǎo)入 IDEA的過(guò)程的文章就介紹到這了,更多相關(guān)Spring導(dǎo)入 IDEA內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Java代碼獲取服務(wù)器性能信息及局域網(wǎng)內(nèi)主機(jī)名
這篇文章主要介紹了使用Java代碼獲取服務(wù)器性能信息及局域網(wǎng)內(nèi)主機(jī)名的方法,方便對(duì)服務(wù)器的遠(yuǎn)程管理和團(tuán)隊(duì)協(xié)作時(shí)用到,而且文中的方法無(wú)需調(diào)用jni,需要的朋友可以參考下2015-11-11
通過(guò)Spring Boot配置動(dòng)態(tài)數(shù)據(jù)源訪問(wèn)多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了通過(guò)Spring Boot配置動(dòng)態(tài)數(shù)據(jù)源訪問(wèn)多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-03-03
Spring中的DefaultResourceLoader使用方法解讀
這篇文章主要介紹了Spring中的DefaultResourceLoader使用方法解讀,DefaultResourceLoader是spring提供的一個(gè)默認(rèn)的資源加載器,DefaultResourceLoader實(shí)現(xiàn)了ResourceLoader接口,提供了基本的資源加載能力,需要的朋友可以參考下2024-02-02
基于application和bootstrap的加載順序及區(qū)別說(shuō)明
這篇文章主要介紹了application和bootstrap的加載順序及區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
利用ClasserLoader實(shí)現(xiàn)jar包加載并調(diào)用里面的方法
classloader即是類加載,虛擬機(jī)把描述類的數(shù)據(jù)從class字節(jié)碼文件加載到內(nèi)存,并對(duì)數(shù)據(jù)進(jìn)行檢驗(yàn)、轉(zhuǎn)換解析和初始化,了解java的類加載機(jī)制,可以快速解決運(yùn)行時(shí)的各種加載問(wèn)題并快速定位其背后的本質(zhì)原因,本文介紹了如何利用ClasserLoader來(lái)實(shí)現(xiàn)jar包加載并調(diào)用里面的方法2024-09-09
Java實(shí)現(xiàn)拓?fù)渑判虻氖纠a
這篇文章我們要講的是拓?fù)渑判?,這是一個(gè)針對(duì)有向無(wú)環(huán)圖的算法,主要是為了解決前驅(qū)后繼的關(guān)系,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-05-05
深入解析Java的Servlet過(guò)濾器的原理及其應(yīng)用
這篇文章主要介紹了深入解析Java的Servlet過(guò)濾器的原理及應(yīng)用,Java編寫的Servlet通常是一個(gè)與網(wǎng)頁(yè)一起作用于瀏覽器客戶端的程序,需要的朋友可以參考下2016-01-01

