环境准备

  • OS:MacOS

  • JDK:java version “1.8.0_231”

  • idea:2019.3.4

  • Gradle:5.6.4

一、下载Spring源码

1 方式1-Github官方

https://github.com/spring-projects/spring-framework

主意

选择release版本下载,网速太慢,不建议是使用该方法下载。

2 方式2-Gitee

码云加速下载地址

二.修改配置文件

在解压完后的目录下,有几个配置文件我们需要提前修改:

1 build.gradle

第一步:搜索repositories,添加阿里云maven镜像仓库

repositories {
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
    maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}

第二步:搜索configurations,将其注释掉

// configurations.all {
//     resolutionStrategy {
//         cacheChangingModulesFor 0, "seconds"
//         cacheDynamicVersionsFor 0, "seconds"
//     }
// }

因为使用gradlew(gradle-wrapper命令) 先编译oxm:compileTest Java的操作,可能会导致进度条卡在0%很长时间,编译过程相当缓慢!

2 gradle.properties

version=5.2.15.RELEASE
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.caching=true
org.gradle.parallel=true

3 settings.gradle

第一行repositories加上阿里云的仓库地址,其余两个不要动。如下所示:

pluginManagement {
    repositories {
        maven { url "https://maven.aliyun.com/repository/public" }
        gradlePluginPortal()
        maven { url 'https://repo.spring.io/plugins-release' }
    }
}

4 gradle-wrapper.properties(可选)

如果后面发现下载gradle速度比较慢,可以先下载到本地。然后在这个文件里指定,就不需要再下载了。

此文件的位置:Spring-Framework/gradle/wrapper/gradle-wrapper.properties

5 安装自己的gradle

虽然当项目导入到idea后,idea里有gradle。但是就如同maven一样,我们也自己下载gradle,并且在idea里使用我们自己的gradle。

mac环境下将上一步下载的gradle.zip解压后:

vim ~/.bash_profile
修改配置文件
export GRADLE=/Users/Develop/develop-tools/gradle-5.6.4(你的gradle的路径);
export PATH="$MAVEN_HOME/bin:$PATH";
保存退出,刷新配置文件
source ~/.bash_profile

三.编译spring-oxm:compileTestJava

在spring源码目录下,有以下两个文件。windows使用gradlew.bat,mac直接执行左边这个即可。

当然也可以在cmd或者bash里运行命令

gradlew :spring-oxm:compileTestJava

编译截图如下,如果配置都正确的话,是很快的。

参考

感谢这篇博客 https://blog.csdn.net/MuZiYu2015/article/details/118157470

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐