javascript
Spring5源码 - 构建源码环境
文章目錄
- 開發環境
- git clone 源碼
- gradle調整 [可選]
- gradle離線安裝
- gradle中央倉庫地址調整
- 執行 gradlew.bat
- 導入到IEDA
- gradlew :spring-oxm:compileTestJava
- 導入到IDEA
- 編譯和 運行Testst設置為 IntelliJ IDEA (建議)
- 測試驗證
- 新建子模塊
- 添加依賴
- 編寫代碼 加載Bean測試
- 運行測試
- Gradle 下載的依賴包存儲的位置
- 問題
- 其他可參考
開發環境
IDEA 2020.2.1 + OpenJDK8U-jdk_x64_windows_hotspot_8u265b01 + gradle-6.5.1-bin.zip
遵循官方指導文檔
git clone 源碼
源碼地址: https://github.com/spring-projects/spring-framework
copy地址,待會要用
這里我將放到了 D:\workspace
打開 git bash ,執行如下命令 git clone https://github.com/spring-projects/spring-framework.git
等一會即可,如下所示
官方指導手冊
https://github.com/spring-projects/spring-framework/wiki/Build-from-Source
gradle調整 [可選]
gradle離線安裝
打開 D:\workspace\spring-framework\gradle\wrapper\gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-6.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/distsgradle會去 distributionUrl對應的地址下載gradle壓縮包,如果網絡不好的話,可以提前現在好一個離線包
修改 distributionUrl,如下
distributionUrl=file\:///D\:/Soft/gradle-6.5.1-bin.zip安裝目錄: windows系統默認GRADLE_USER_HOME 為 c:\Users\用戶\.gradle
gradle中央倉庫地址調整
國內環境的話,建議調整一下gradle的中央倉庫。
找到 build.gradle
打開 285行 添加阿里云地址
maven {url 'https://maven.aliyun.com/nexus/content/groups/public/'} maven {url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}執行 gradlew.bat
windows環境下 gradlew.bat 就是我們需要執行的腳本
第一次要下載好多依賴,速度取決于你的網速,如果失敗的話,多執行幾次,基本都是可以成功的。
導入到IEDA
https://github.com/spring-projects/spring-framework/blob/master/import-into-idea.md
根據提示來操作即可
Precompile spring-oxm with ./gradlew :spring-oxm:compileTestJava Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle) When prompted exclude the spring-aspects module (or after the import via File-> Project Structure -> Modules) Code awaygradlew :spring-oxm:compileTestJava
第一步 gradlew :spring-oxm:compileTestJava
導入到IDEA
選擇你拉取的spring源碼,方式選擇build.gradle
等待index完成,需要下載jar包 ,不是很快(我用了好幾次,耗時好幾個小時),如果期間出錯,多試幾次。
點擊刷新按鈕,如上所示,基本可以認定為構建成功。
編譯和 運行Testst設置為 IntelliJ IDEA (建議)
編譯完成后建議 將編譯和 運行Testst設置為 IntelliJ IDEA , 默認的Gradle特別慢。
這個地方選OPEN JDK11 會有問題,請見問題記錄
測試驗證
新建子模塊
選擇 gradle
隨便建立一個子module的名稱
添加依賴
compile(project(":spring-context"))編寫代碼 加載Bean測試
package com.artisan;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;@Configuration @ComponentScan("com.artisan") public class AppConfig { } package com.artisan;import org.springframework.stereotype.Component;@Component public class ArtisanService { } package com.artisan;import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class ArtisanTest {public static void main(String[] args) {AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);ArtisanService bean = ac.getBean(ArtisanService.class);System.out.println(bean.getClass().getName());} }運行測試
至此,spring5.1.x的源碼編譯導入idea就算完成了。
Gradle 下載的依賴包存儲的位置
Windows系統默認下載到:C:\Users\(用戶名)\.gradle\caches\modules-2\files-2.1
Mac系統默認下載到:/Users/(用戶名)/.gradle/caches/modules-2/files-2.1
問題
D:\workspace\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:19:15 java: 程序包jdk.jfr不存在最開始使用的OpenJDK jdk-11.0.8.10-hotspot 更換JDK為 OpenJDK8U-jdk_x64_windows_hotspot_8u265b01
【1】gradle JVM
【2】 項目編譯環境 的JDK
重新編譯,即可解決。
參考子路老師的博客 ,https://blog.csdn.net/java_lyvee/article/details/107300648 ,感謝大佬分享。
其他可參考
https://www.yuque.com/docs/share/17a9d955-2153-4113-8bbb-79c35e274ed0?#
總結
以上是生活随笔為你收集整理的Spring5源码 - 构建源码环境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [并发编程] - Executor框架#
- 下一篇: [并发编程] - Executor框架#