gradle+idea配置閱讀Spring源碼開發環境(解決jar包下載緩慢問題)
閱讀源碼是學習Spring的最好的方法,但是Spring不是使用maven進行構建,而是使用gradle進行構建的。gradle大家可以理解為和maven一樣的東西,整體思想和maven也差不多。
很多博客都大概總結了使用gradle和idea編譯spring的步驟,在編譯中需要下載非常多的jar包,但是由於一些眾所周知的原因,編譯很容易失敗,而且非常緩慢。這就是本文要解決的問題。
0 前提
進行安裝之前,請確保你的jdk環境是1.8+,並且成功設置好了環境變量。
使用 java -version 進行檢查
我的環境:
IntelliJ IDEA 2019.3.2 (Ultimate Edition)
JDK 1.8.0
1. 安裝gradle
spring 源碼是使用gradle進行管理的,所以首先得下載安裝好gradle 並設置好環境變量。
1.1 下載gradle
建議到下面的網址中下載,比官網點擊download 要快很多
網址:https://services.gradle.org/distributions/
我下載的是gradle-5.6.all.zip
下載完之后 解壓到你想要的文件夾中,注意路徑不要出現中文。
1.2 配置環境變量
linux和mac中在~/.bashrc 中配置 並且保存設置
# 配置gradle環境變量 export gradle_home=/usr/local/gradle-5.6/bin export PATH=$PATH:$gradle_home
windows中
假設windows安裝在 E:\install-dev\gradle-5.6.3 ## 修改為自己的路徑
在path中添加下列信息
1.3 查看是否配置成功
gradle -v
1.4 配置gradle,加速
在gradle根目錄:\init.d\下,新建一個:init.gradle 文件,添加以下內容
設置gradle的源 為阿里雲
allprojects{ repositories { def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/' all { ArtifactRepository repo -> def url = repo.url.toString() if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) { project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .' remove repo } } maven { url REPOSITORY_URL } }}
2. 下載spring 源碼
2.1 下載源碼
網址:https://github.com/spring-projects/spring-framework/tree/5.0.x 我下載的是spring 5.0的源碼 可以使用 git下載 git https://github.com/spring-projects/spring-framework.git 如果比較慢,可以直接下載zip包,解壓即可
2.2 修改配置
配置spring源碼根目錄下的build.gradle文件:
注釋configurations.all (注意不要注釋錯了,這里要小心,截圖如下)
同時,添加一段配置
allprojects { repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} } }
2.3 開始編譯
在spring源碼根目錄下
windows使用命令 : gradlew :spring-oxm:compileTestJava
linux和mac使用命令: ./gradlew :spring-oxm:compileTestJava
體驗飛一樣的感覺吧!我第一次編譯只用了2分鍾,和其他教程動不動failed完全不一樣!
3. 導入idea
快成功了,但是還需要配置!
-
File -> New -> Project from Existing Sources -> 找到選擇spring-framework源碼
-
然后配置項目的gradle 為自己的下載安裝的gradle,不用使用idea自帶的
這個時候 idea應該開始自動build了,然而發現 還是很慢。這里還有兩處配置
修改spring源碼根目錄中的gradle.properties文件
org.gradle.daemon=true org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.configureondemand=true
修改spring源碼根目錄中的setting.gradle文件,在第一行添加下面的配置,注意是在第一行 添加!不是覆蓋所有!
- # 在第一行插入
pluginManagement { repositories { maven { url "https://maven.aliyun.com/repository/public" } gradlePluginPortal() maven { url 'https://repo.spring.io/plugins-release' } } }
最后,保存好一切設置后,建議重啟idea,重新打開項目,然后就會發現,飛一樣的速度,編譯通過!
-