gradle+idea配置阅读Spring源码开发环境(解决jar包下载缓慢问题)
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,重新打开项目,然后就会发现,飞一样的速度,编译通过!
-