欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用idea和gradle編譯spring5源碼的方法步驟

 更新時間:2020年12月01日 14:21:10   作者:baomw  
這篇文章主要介紹了詳解使用idea和gradle編譯spring5源碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

寫在前面:spring 應(yīng)該對于每個從事java開發(fā)的大兄弟們來說應(yīng)該都不陌生的,作為一個從業(yè)兩年多的小開發(fā)仔,個人覺得,每天都在面對spring,確從來沒有編譯過spring源碼,有點(diǎn)不太合適。最近在研究spring源碼的時候,突然想起編譯一下spring源碼,網(wǎng)上應(yīng)該也有很多大神編譯過spring源碼,在這里我把我再編譯過程的遇到的坑,來跟大家分享下。

版本工具:spring5.0.x,gradle4,9,jdk1.8_131,kotlin1.2.51,groovy2.4.15,IntelliJ IDEA 2018-2

詳細(xì)步驟及坑見下:

1,下載gradle,可以去官網(wǎng)下載,gradle版本需要4.2以上,小編這里選擇的是gradle4.9版本。

gradle下載地址:https://services.gradle.org/distributions/

gradle下載時候有三個包,gradle-src為gralde源碼,gradle-bin為安裝包,gradle-all為源碼加安裝包,我們這里只需下載安裝文件即可。

2,配置gradle

gradle下載后不需要安裝,解壓再本地磁盤后配置環(huán)境變量即可

1),配置gradle環(huán)境變量

新建GRADLE_HOME,path中增加%GRADLE_HOME%/bin;即可

配置完成以后win+r,輸入cmd進(jìn)入dos界面,鍵入命令gradle -v,若如下圖正確輸出版本信息即可

2),配置gradle默認(rèn)的本地倉庫,gradle和maven類似,工作時也需要一個本地倉庫,管理工程jar包,可做如下配置,新增GRADLE_USER_HOME,路徑配置成需要的本地倉庫路徑即可。

3,下載spring5源碼(這里我們直接從全球最大的同性交友平臺github上下載就可以了),進(jìn)入github官網(wǎng),直接搜索spring

這里可能有很多同志上傳的spring源碼,這里我們直接找官方版本

進(jìn)去之后會看到一個master版本,我們,同時也包含很多spring的歷史分支版本,這里我們直接選擇5.0.x版本

我們直接下載zip到本地磁盤即可

源碼下載地址:https://github.com/spring-projects/spring-framework

4,講spring5源碼導(dǎo)入idea進(jìn)行構(gòu)建

編譯spring5源碼有很多方式,可以直接通過gradle命令編譯,不過這種編譯方式比較麻煩,出現(xiàn)錯誤也不太好排查,回頭可專門寫一個文介紹下使用gradle命令編譯spring源碼。

這里我們選擇直接通過代碼編輯工具來編譯spring5源碼,可以用eclipse或者idea等等,這里我個人推薦使用idea編譯。

1)將源碼導(dǎo)入idea,idea怎么導(dǎo)入工程就不一一細(xì)說了,沒使用過idea的大兄弟,可以惡補(bǔ)一下idea使用手冊:file-open選到對應(yīng)項目即可(先將源碼解壓到idea工作空間中去)

2),導(dǎo)入前先注意下工程下的這幾個文件,為導(dǎo)入eclipse和idea前需要注意的地方

我們點(diǎn)開import-into-idea.md文件

注意幾點(diǎn):

a,因為其他項目需要依賴spring-core和spring-oxm,所以我們導(dǎo)入后需要先編譯這兩個包

b,spring-aspects需要依賴三方j(luò)ar(精通aop的應(yīng)該知道spring-aop和aspectj的關(guān)系,在使用注解方式實(shí)現(xiàn)spring-aop的時候,需要導(dǎo)入aspectj的jar,有興趣的可以去查閱下官方文檔aop相關(guān)文檔),這里編譯可能會報錯,不影響我們編譯使用,我們先不處理

c,使用工具編譯時,可能會出現(xiàn)內(nèi)存溢出情況,這里我們編譯時需要增加相關(guān)參數(shù)

-XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m

3),以上工作完成之后,我們可以開始導(dǎo)入編輯編譯配置了,如下圖(需要注意的地方已在圖中標(biāo)注)

注意-注意-注意:小編曾經(jīng)猜過的坑,jdk版本,不能太高,我曾經(jīng)使用jdk1.8_20和jdk1.8_191編譯,均會出現(xiàn)版本問題,我后來采用的是,jdk1.8_131版本,即可成功

4),編譯過程中會出現(xiàn)一些錯誤,常見如下

a),jdk版本錯誤(如前所說,換成對應(yīng)版本即可)

b),出現(xiàn)如下錯誤,點(diǎn)擊open file,將框中內(nèi)容注釋即可

如上做完后,等著build完了即可,全稱需要下載gradle倉庫jar包,需要時間比較長,拼機(jī)器性能和網(wǎng)速的時候到了,兄弟們加油。

5,當(dāng)項目構(gòu)建完成之后,便可開始編譯,編譯很簡單,直接在moudle中run test all即可

如果出現(xiàn)依賴報錯,如下執(zhí)行命令,即可下載相應(yīng)jar包

如下執(zhí)行完了后,編譯moudle即可,如此依次編譯spring-oxm,spring-context,spring-bean即可

6,使用剛剛編譯的spring源碼構(gòu)建spring項目,在工程目錄下,新建moudle,引入對應(yīng)的依賴即可

項目構(gòu)建完成,正確輸出。至此,spring5.0.x項目構(gòu)建編譯完成。大功告成!

到此這篇關(guān)于詳解使用idea和gradle編譯spring5源碼的文章就介紹到這了,更多相關(guān)idea和gradle編譯spring5內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot Admin 動態(tài)修改日志級別的方法步驟

    Spring Boot Admin 動態(tài)修改日志級別的方法步驟

    這篇文章主要介紹了Spring Boot Admin 動態(tài)修改日志級別的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳解SpringBoot中@PostMapping注解的用法

    詳解SpringBoot中@PostMapping注解的用法

    在SpringBoot中,我們經(jīng)常需要編寫RESTful Web服務(wù),以便于客戶端與服務(wù)器之間的通信,@PostMapping注解可以讓我們更方便地編寫POST請求處理方法,在本文中,我們將介紹@PostMapping注解的作用、原理,以及如何在SpringBoot應(yīng)用程序中使用它
    2023-06-06
  • maven一鍵刪除倉庫無用文件的實(shí)現(xiàn)

    maven一鍵刪除倉庫無用文件的實(shí)現(xiàn)

    大家都知道我們在使用Maven的時候,會下載一堆無用非jar文件,本文主要介紹了maven一鍵刪除倉庫無用文件的實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • 解決Spring Batch框架job任務(wù)只跑一次的問題

    解決Spring Batch框架job任務(wù)只跑一次的問題

    這篇文章主要介紹了解決Spring Batch框架job任務(wù)只跑一次的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 如何通過RabbitMq實(shí)現(xiàn)動態(tài)定時任務(wù)詳解

    如何通過RabbitMq實(shí)現(xiàn)動態(tài)定時任務(wù)詳解

    工作中經(jīng)常會有定時任務(wù)的需求,常見的做法可以使用Timer、Quartz、Hangfire等組件,這次想嘗試下新的思路,使用RabbitMQ死信隊列的機(jī)制來實(shí)現(xiàn)定時任務(wù),下面這篇文章主要給大家介紹了關(guān)于如何通過RabbitMq實(shí)現(xiàn)動態(tài)定時任務(wù)的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Java中的instanceof關(guān)鍵字在Android中的用法實(shí)例詳解

    Java中的instanceof關(guān)鍵字在Android中的用法實(shí)例詳解

    instanceof是Java的一個二元操作符,和==,>,<是同一類東西。接下來通過本文給大家介紹Java中的instanceof關(guān)鍵字在Android中的用法,非常不錯,具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧
    2016-07-07
  • Java的web開發(fā)中SSH框架的協(xié)作處理應(yīng)用筆記

    Java的web開發(fā)中SSH框架的協(xié)作處理應(yīng)用筆記

    這篇文章主要介紹了Java的web開發(fā)中SSH框架的協(xié)作處理應(yīng)用筆記,SSH是指Struts和Spring以及Hibernate的框架搭配,需要的朋友可以參考下
    2015-12-12
  • SpringBoot+OCR?實(shí)現(xiàn)圖片文字識別

    SpringBoot+OCR?實(shí)現(xiàn)圖片文字識別

    本文主要介紹了SpringBoot+OCR 實(shí)現(xiàn)圖片文字識別,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Nacos單機(jī)版安裝啟動的全流程

    Nacos單機(jī)版安裝啟動的全流程

    這篇文章主要介紹了Nacos單機(jī)版安裝啟動的全流程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Spring?Boot?整合RocketMq實(shí)現(xiàn)消息過濾功能

    Spring?Boot?整合RocketMq實(shí)現(xiàn)消息過濾功能

    這篇文章主要介紹了Spring?Boot?整合RocketMq實(shí)現(xiàn)消息過濾,本文講解了RocketMQ實(shí)現(xiàn)消息過濾,針對不同的業(yè)務(wù)場景選擇合適的方案即可,需要的朋友可以參考下
    2022-06-06

最新評論