南南南南啊!
简述:
- 不能忍受慢(看到这里你就准备笑吧!!)
- 其他大神的博客实在让我难受
- 自己动手,下载spring,编译spring源码,导入idea,开启学习模式!!
- 笔者环境:java1.8.0_181,gradle 5.6.3,idea2019.2.4
1.下载spring源码:
github地址:https://github.com/spring-projects/spring-framework
码云地址:https://gitee.com/LSZYAB/spring-framework.git
github的童鞋,很慢!码云的童鞋飞起!!但是笔者给的是spring5.1.x的,想要看低版本的怎么办?
给个老铁的链接:
[csdn]: https://blog.csdn.net/xy_zhangchn/article/details/81558144
2.安装gradle:
- 官网(慢):http://gradle.org/downloads
- 下载地址(快):https://services.gradle.org/distributions/
- 解压:
- 环境配置:
新建系统变量:
GRADLE_HOME
E:\install-dev\gradle-5.6.3 ## 修改为自己的路径
Path中添加信息:
%GRADLE_HOME%\bin
cmd查看gradle版本:gradle -v
- 修改gradle配置:
gradle根目录:\init.d\下,新建一个:init.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
}
}
}
- 修改spring源码根目录下build.gradle文件:将原来的信息替换成以下的信息
allprojects {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
3.构建源码:
- 在源码根目录有一个文件:import-into-idea.md(别理它,我们继续!!)
1. Precompile `spring-oxm` with `./gradlew :spring-oxm:compileTestJava`
2. Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
3. When prompted exclude the `spring-aspects` module (or after the import via File-> Project Structure -> Modules)
4. Code away
cmd到spring源码下:执行gradlew :spring-oxm:compileTestJava
,然后体验一下速度吧!!
出现如图所示的,构建成功了!接下来导入idea了!!
4.导入idea:
- File -> New -> Project from Existing Sources -> 找到选择spring-framework源码 -> 选择build.gradle
- 笔者的打开之后,idea配置gradle: File->setting->gradle
点击ok,右下角开始加载包,但是还是慢!!最后修改: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
在JDK1.8中-XX:MaxPermSize=512m无效,因为JDK1.8没有永久代的说法,取而代之的是元空间概念,因此可以改为:-XX:MaxMetaspaceSize=512m,设置参数主要是编译下载包会占用大量的内存,可能会内存溢出。笔者会写相关的文章哦!!
好了!!笔者没有花几个小时下载包,构建的时候也没出现什么问题,人品比较好,江湖再见!!
(如果你直接下拉我的码云:对不住了!!我已经构建好了,直接导入idea吧,但是记得走修改gradle配置,让它更‘快!!!’)