spring 5.0.21.BUILD-SNAPSHOT源碼解讀,第一集

    工做了也有五六年了,一直從事java開發的工做,不少時候都是爲了適配需求而開發代碼,並無對更深層去了解源碼,最近無心間跟了下spring 5.0的源碼,發現了彩蛋,激起了個人好奇,這纔有了今天的這篇文章(後續我儘可能更新)。javascript

好了,進入正如:java

1.準備環境:

  1.  操做系統:Ubuntu 20.04.1 LTS
  2.    JDK    :1.8.0_181
  3.    GRADLE版本:  Gradle 4.4.1
  4.    MAVEN 版本: Apache Maven 3.5.4
  5.    IDEA 版本:  2018.3.6

2源碼下載:

  1.   spring源碼(mirrors-Spring-Framework-5.0.1): https://maven.springframework.org/release/org/springframework/spring/5.0.1.RELEASE/ 選擇dist版本下載便可。 

  3.下載maven(3.5.4) :https://archive.apache.org/dist/maven/maven-3/3.5.4/source/

      

  4.gradle下載: 

      注意下載gradle以前先要確認spring源碼中默認使用的是哪一個版本,在spring源碼下build.gradle文件中查看配置的gradle版本,而後咱們本地去安裝這個版本,好比我下載的源碼是 spring5.0.1,源碼中配置的默認gradle版本是:spring

    gradleVersion = "4.4.1",那麼我就去安裝4.4.1的版本,具體下載地址以下:  https://services.gradle.org/distributions/ apache

    

 

 

 

  

  5.編譯前準備:

    maven  與 gradle 安裝完成後,命令行檢查是否正確,如圖:網絡

    

 

 

     

  6.源碼預編譯:

    打開spring源碼的import-into-idea.md文件,執行第一步,./gradle :spring-oxm:compileTestJava (注意此處不要使用spring默認配置的gradlew命令)使用咱們本地安裝的gradle進行編譯,以下圖:maven

    必定要先命令進入到spring源碼目錄:ide

    

    這一步不少人都會卡好久,也包括我,要麼是jdk版本不匹配,要麼是gradle版本不匹配,要麼是maven網絡被牆,總之各類各樣的問題,我大概說下解決方案:gradle

    若是是版本問題,建議最好更換版本(這就是我開頭就放出了個人環境版本的緣由),若是是網絡被牆或者緩慢,能夠在build.gradle中增長阿里倉庫地址配置以下:ui

     

buildscript {
	repositories {
		maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'} //增長此處
		maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}  //增長此處
		maven { url 'https://repo.spring.io/plugins-release'}//原來的倉庫地址必定要保存,切記切記。
	}
	
}

  7.導入IDEA

  這一步就簡單了,idea直接導入選擇gradle編譯,指定本地安裝版本,會自動下載依賴,這裏會要好久好久,我用了25分鐘。url

  最終結果以下:

  

 

   本身能夠新建一個moudle,選擇gradle類型,而後增長spring-context依賴,就能夠愉快的調試代碼了。

  添加依賴:

    

 

 

  執行效果,下一期開始調試:

相關文章
相關標籤/搜索