什么,你還不會(huì)查看 Spring 源碼,一文詳細(xì)介紹如何操作。

掘金同步賬號(hào) 吾心仔

什么?精通Spring,你竟然連Spring 源碼都沒有看過!是不是最怕別人問到你這種問題。

今天先讓我們把Spring源碼環(huán)境準(zhǔn)備好,去源碼的世界看看這個(gè)大家伙的神奇之處。

一、下載

下載方式丟給你,別再說你沒時(shí)間了,趕快來下載觀摩一下吧!github:https://github.com/spring-projects/spring-frameworkgitee:https://gitee.com/mirrors/Spring-Framework

github下載慢的話可以使用國內(nèi)鏡像倉庫gitee

ps:提供github下載加快的方法:https://juejin.cn/post/6960935281952292895但是最好的方法永遠(yuǎn)是掛代理咯。

找到tag標(biāo)簽,下載你所需要的版本,這里我們使用 v5.2.10.RELEASE 進(jìn)行源碼的閱讀

二、配置

1. gradle 配置

因?yàn)閟pring是通過gradel構(gòu)建的,所以先需要配置 gradlegradle下載地址https://gradle.org/releases/

在 gradle-wrapper.properties 文件中可以看到使用的 gradle 版本 5.6.4

版本不能低于5.6 ,低于5.6會(huì)出現(xiàn) plugin with id 'java-test-fixtures' not found;錯(cuò)誤

版本過低還可能造成不兼容 jdk11以及Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed;等問題

版本不能高于等于6.0,會(huì)出現(xiàn) com.gradle.build-scan 3.2 不支持6.0以及以后的版本

2. 倉庫配置

修改倉庫配置來提高引用包的下載速度

<pre class="md-fences md-end-block" lang="groovy" contenteditable="false" cid="n35" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 0.9em; white-space: pre; display: block; break-inside: avoid; text-align: left; background-image: ; background-position: var(--code-block-bg-color); background-size: ; background-repeat: var(--code-block-bg-color); background-attachment: ; background-origin: ; background-clip: ; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(221, 221, 221); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">repositories {
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
maven { url "https://repo.spring.io/snapshot" } // Reactor
maven {url 'https://maven.aliyun.com/nexus/content/groups/public/'} //阿里云
maven {url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
}</pre>

3. 注釋掉plugins里面的

id 'io.spring.gradle-enterprise-conventions' version '0.0.2

4. 執(zhí)行 spring 根目錄下的 gradlew.bat

5. 導(dǎo)入idea進(jìn)行編譯即可

?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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