spring源碼(1)---idea基礎環境搭建

来源:https://www.cnblogs.com/hanx1a0/archive/2019/11/11/11816429.html
-Advertisement-
Play Games

一、環境準備 1. jdk1.8.1 做java開發的這個應該能自己找到 2.gradle-4.9 https://services.gradle.org/distributions/ 沒用過gradle的同學可以將其理解為類似於maven的包管理工具,這裡下載gradle-4.9-bin.zip, ...


一、環境準備

  1. jdk1.8.1 

  做java開發的這個應該能自己找到

  2.gradle-4.9 https://services.gradle.org/distributions/

  沒用過gradle的同學可以將其理解為類似於maven的包管理工具,這裡下載gradle-4.9-bin.zip,解壓到本地,配置環境變數(GRADLE_HOME=D:/dev/gradle[文件解壓路徑].,PATH變數新增”%GRADLE_HOME%/bin;)

  打開命令行執行一下gradle -v出現如下提示即成功

     

  3.spring-framework源碼包 https://github.com/spring-projects/spring-framework/tree/5.0.x

 註意:這裡對版本不做解釋,只是我目前正在使用的可相容的版本,spring-framework的源碼包有需要最新的可自行切換分支即可。

  對於下載或者clone源碼比較慢的同學,這裡可以通過碼雲做一下過渡,具體操作如下:

  新建倉庫-->導入已有倉庫-->將github提供的clone地址拷貝過來,導入即可(這裡一定要選擇https,用ssh的地址是克隆不了的)-->大概2,3分鐘即可克隆完成,再從碼雲下載就會快很多了。

      

二、項目導入

   1.如果是clone的方式,先切到對應分支上;

   2.如果是下載zip包的方式,先將壓縮包解壓到對應的代碼目錄即可。

   發現根目錄下有兩個文件,如下:

  

   本次使用的編譯器是idea,那我們就只看import-into-idea.md文件

     

根據md文檔中給出的步驟

  1.預編譯spring-oxm通過命令./gradlew :spring-oxm:compileTestJava(註意:給出的命令是Linux環境下的,Windows在執行代碼根目錄下執行gradlew :spring-oxm:compileTestJava)

   

 我這裡由於已經下載好了一次,這裡保留一張執行成功的狀態。

   2.導入idea,可以直接import project->選擇源碼路徑->選擇gradle點擊next->勾選Use auto-import,且配置一下gradle的安裝目錄,點擊next即可

    

可以看到上圖中最下麵一行配置了Gradle VM options,這裡也是根據官方提供的md文檔中knows issues中所描述的,概括一下就是:如果想通過idea去運行測試案例的話,可以通過配置參數避免記憶體不足的情況。

接著等待gradle在中心倉庫下載jar包,這裡給網速比較慢的同學提供一個提速的方法,都知道maven從中心倉庫下載jar包的時候速度是比較慢的,gradle也一樣,所以建議使用阿裡雲的倉庫去下載,只需要修改build.gradle文件中的下載地址如下:

repositories {
    maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} 
}

等待下載完成。

最後新建一個自己的module如下[我這裡新建了一個spring-peanut],把需要調試的項目包在build.gradle中的dependencies下引入即可。註意:新建module的時候是選gradle而非maven

 

 最後就可以寫一個自己的測試入口類去debug源碼了。

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 重構的手法有很多種,相對而言,一篇文章的涵蓋量自然是無法提到所有,米兜這裡也只能提出一些平時會經常使用的一些手法,像一些比較高端的手法,各位有興趣的可以去找一些專門的書籍涉獵。 另外還有一點,由於米兜是做JAVA開發的,因此部分重構小技巧可能與JAVA語言,或者說與面向對象的語言息息相關,不過大多數 ...
  • 小明是一個很牛逼的程式員,在國際標準化組織工作。 他現在正在設計新一代的C++標準,標準中有一個待實現的函數:findMax(),這個函數要求使用者輸入任何類型的數據,他都能找到最大的一個。 於是他想到了這個: int findMax(int a,int b){ if(a>b){ return a; ...
  • 一.使用的spring boot +mybatis-plus+shiro+maven來搭建項目框架 1 <!--shiro--> 2 <dependency> 3 <groupId>org.apache.shiro</groupId> 4 <artifactId>shiro-core</artifa ...
  • [TOC] 題目 "Largest Rectangle in a Histogram" 思路 單調棧。 不知道怎麼描述所以用樣例講一下。 我們可以用單調棧去維護每一個高度左右第一個比他矮的位置即可 $Code$ ...
  • 入門python一切都感覺到那麼簡單,從來沒有想過人生還可以有這麼美好的待遇,這一切都是因為接觸了python才讓我感到生活原來一切又充滿了希望 ...
  • jdk: 解壓: tar zxvf jdk-8u144-linux-x64.tar.gz 執行:vi /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0_201 export CLASSPATH=$JAVA_HOME/lib export PATH=$ ...
  • Day1 考的不是很好,T1T2沒區分度,T3想的太少,考試後期幾乎都是在摸魚,bitset亂搞也不敢打,只拿到了35分,跟前面的差距很大 A. 最大或 標簽: 二進位+貪心 題解: 首先x,y中一定有一個是R,考慮L的取值:對於每一位分為x中有沒有討論: 1>有 如果這一位不加以後全加可以>=L則 ...
  • Scrapy.http.Request 自動去重,根據url的哈希值,進行去重 屬性 meta(dict) 在不同的請求之間傳遞數據,dict priority(int) 此請求的優先順序(預設為0) dont_filter(boolean) 關閉自動去重 errback(callable) 在處理請 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...