最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

寫在前面:spring 應(yīng)該對(duì)于每個(gè)從事java開發(fā)的大兄弟們來說應(yīng)該都不陌生的,作為一個(gè)從業(yè)兩年多的小開發(fā)仔,個(gè)人覺得,每天都在面對(duì)spring,確從來沒有編譯過spring源碼,有點(diǎn)不太合適。最近在研究spring源碼的時(shí)候,突然想起編譯一下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下載時(shí)候有三個(gè)包,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類似,工作時(shí)也需要一個(gè)本地倉庫,管理工程jar包,可做如下配置,新增GRADLE_USER_HOME,路徑配置成需要的本地倉庫路徑即可。

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

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

進(jìn)去之后會(huì)看到一個(gè)master版本,我們,同時(shí)也包含很多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)錯(cuò)誤也不太好排查,回頭可專門寫一個(gè)文介紹下使用gradle命令編譯spring源碼。

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

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

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

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

注意幾點(diǎn):

a,因?yàn)槠渌?xiàng)目需要依賴spring-core和spring-oxm,所以我們導(dǎo)入后需要先編譯這兩個(gè)包

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

c,使用工具編譯時(shí),可能會(huì)出現(xiàn)內(nèi)存溢出情況,這里我們編譯時(shí)需要增加相關(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編譯,均會(huì)出現(xiàn)版本問題,我后來采用的是,jdk1.8_131版本,即可成功

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • JAVA多線程處理for循環(huán)數(shù)據(jù)詳細(xì)講解

    JAVA多線程處理for循環(huán)數(shù)據(jù)詳細(xì)講解

    這篇文章主要給大家介紹了關(guān)于JAVA多線程處理for循環(huán)數(shù)據(jù)的相關(guān)資料,我們在代碼中經(jīng)常需要使用for循環(huán)這個(gè)操作來達(dá)到目的,而當(dāng)for循環(huán)的次數(shù)過多時(shí)我們會(huì)發(fā)現(xiàn)執(zhí)行效率會(huì)變的很低,整體耗時(shí)非常多,需要的朋友可以參考下
    2023-07-07
  • Java調(diào)用C++程序的實(shí)現(xiàn)方式

    Java調(diào)用C++程序的實(shí)現(xiàn)方式

    這篇文章主要介紹了Java調(diào)用C++程序的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 新手了解java 類,對(duì)象以及封裝基礎(chǔ)知識(shí)

    新手了解java 類,對(duì)象以及封裝基礎(chǔ)知識(shí)

    JS是一門面向?qū)ο笳Z言,其對(duì)象是用prototype屬性來模擬的,本文介紹了如何封裝JS對(duì)象,具有一定的參考價(jià)值,下面跟著小編一起來看下吧,希望對(duì)你有所幫助
    2021-07-07
  • 利用Java的Struts框架實(shí)現(xiàn)電子郵件發(fā)送功能

    利用Java的Struts框架實(shí)現(xiàn)電子郵件發(fā)送功能

    這篇文章主要介紹了利用Java的Struts框架實(shí)現(xiàn)電子郵件發(fā)送功能,Struts框架是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • 如何在java中使用Jython

    如何在java中使用Jython

    這篇文章主要介紹了如何在java中使用Jython,由于項(xiàng)目中需要用到Java調(diào)用Python的腳本,來實(shí)現(xiàn)一些功能,就對(duì)jython做了一些了解,通過jython可以實(shí)現(xiàn)java對(duì)python腳本的調(diào)用,需要的朋友可以參考一下
    2022-03-03
  • 盤點(diǎn)Java中延時(shí)任務(wù)的多種實(shí)現(xiàn)方式

    盤點(diǎn)Java中延時(shí)任務(wù)的多種實(shí)現(xiàn)方式

    當(dāng)需要一個(gè)定時(shí)發(fā)布系統(tǒng)通告的功能,如何實(shí)現(xiàn)??當(dāng)支付超時(shí),訂單自動(dòng)取消,如何實(shí)現(xiàn)?其實(shí)這些問題本質(zhì)都是延時(shí)任務(wù)的實(shí)現(xiàn),本文為大家盤點(diǎn)了多種常見的延時(shí)任務(wù)實(shí)現(xiàn)方法,希望對(duì)大家有所幫助
    2022-12-12
  • Java刪除String中指定字符的11種方法匯總

    Java刪除String中指定字符的11種方法匯總

    這篇文章主要給大家介紹了關(guān)于Java刪除String中指定字符的11種方法,在Java中String類提供了許多方法來處理字符串,其中包括刪除指定字符的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Java web velocity分頁宏示例

    Java web velocity分頁宏示例

    這篇文章主要介紹了Java web velocity分頁宏示例,需要的朋友可以參考下
    2014-03-03
  • Json傳輸出現(xiàn)中文亂碼問題的解決辦法

    Json傳輸出現(xiàn)中文亂碼問題的解決辦法

    最近遇到一個(gè)問題,就是將中文消息以json格式推給微信服務(wù)器時(shí),收到的消息是亂碼,所以下面這篇文章主要給大家介紹了關(guān)于Json傳輸出現(xiàn)中文亂碼問題的解決辦法,需要的朋友可以參考下
    2023-05-05
  • Java實(shí)戰(zhàn)之實(shí)現(xiàn)一個(gè)好用的MybatisPlus代碼生成器

    Java實(shí)戰(zhàn)之實(shí)現(xiàn)一個(gè)好用的MybatisPlus代碼生成器

    這篇文章主要介紹了Java實(shí)戰(zhàn)之實(shí)現(xiàn)一個(gè)好用的MybatisPlus代碼生成器,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04

最新評(píng)論

清镇市| 连云港市| 牟定县| 溧水县| 安泽县| 剑阁县| 玛多县| 榆社县| 剑阁县| 永善县| 嘉善县| 镇坪县| 台山市| 克山县| 福泉市| 蓬莱市| 南岸区| 高密市| 泰宁县| 平顶山市| 兴业县| 临澧县| 平利县| 丹东市| 临洮县| 若羌县| 原平市| 元阳县| 柳州市| 农安县| 白水县| 凤冈县| 河源市| 汝州市| 乌审旗| 错那县| 潜山县| 双流县| 蛟河市| 盐源县| 阳曲县|