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

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


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

在 USER_HOME/.gradle/ 下面新建 init.gradle 文件,將國外源換成國內(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 窗口,先進入源碼的目錄文件夾,執(zhí)行命令不用加前面的./
配置 IDEA 中的 gradle

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

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

編譯時報錯如下:

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

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

