# SpringFramework5.2.x-src **Repository Path**: duskrazor/SpringFramework5.2.x-src ## Basic Information - **Project Name**: SpringFramework5.2.x-src - **Description**: 编译spring framework源码 spring版本 5.2.x(5.2.20) Gradle版本 5.6.4 JDK: 1.8 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-03 - **Last Updated**: 2022-03-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ``` Spring Framwork版本 5.2.x(5.2.20) Gradle版本 5.6.4 JDK: 1.8 不同版本的Spring Framwork的Gradle版本可能不同,所以Gradle的版本一定要参考框架采用的版本!!! ``` ## spring源码编译步骤 ### 1.安装 gradle ,配置 gradle 环境变量 ``` == 新建 GRADLE_HOME 后,path中增加 %GRADLE_HOME%/bin; 即可 == ``` ### 2.进入 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 } } } ``` ### 3.下载 spring 源码,IDEA加载,取消IDEA自动下载配置 ### 4.设置 IDEA java 环境 ### 5.设置 spring源码 下Spring-Framwork/gradle/gradle-wrapper.properties的 ### distributionUrl=file:///D:/Download/distributions/gradle-5.6.4-bin.zip ### distributionUrl=后面的路径是自己定义的,是否修改可选! ### 6.添加项目 gradle 镜像,在 Spring-Framwork 源码根目录找到 build.gradle 搜索 repositories,添加如下镜像: ``` 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" } maven { url "https://repo.spring.io/milestone" } maven { url "https://repo.spring.io/plugins-release" } } ``` ### 7.在Spring-Framwork 根目录下的 buildSrc 目录下找到 build.gradle,在repositories { ... } 中增加如下配置: ``` maven { url "https://maven.aliyun.com/nexus/content/groups/public" } maven { url "https://maven.aliyun.com/nexus/content/repositories/jcenter" } ``` ### 8.导入项目,进入之后直接cancel掉IDEA的自动下载导入!!! ### 9.再次检查IDEA的java运行环境版本,SDK版本,项目Module中的Dependencies所依赖的jdk版本是否一致 ### 10.在IDEA侧边栏找到Gradle,点击reload(重新加载)... 漫长等待后 显示BUILD SUCCESSFUL in .... 则代表初次编译完成 ### 下列三步都在Gradle中执行(IDEA侧边栏的gradle) #### 10.1. 编译 spring-oxm:进入spring-oxm/Tasks/other/下 选择 complierTestjava 双击等待编译完成... #### 10.2. 编译 spring-core:进入spring-core/Tasks/other/下 选择 complierTestjava 双击等待编译完成... #### 10.3 进入根目录:spring/Tasks/build/ 点击 build 等待编译完成... ### 11.新建一个Gradle的Module,在其build.gradle的dependencies { ... }里添加如下依赖即可像平时spring一样了: ``` 引入相关依赖 compile(project(":spring-context")) compile(project(":spring-beans")) compile(project(":spring-core")) compile(project(":spring-aop")) ``` ### 12.控制台输出乱码解决,在Help > Edit Custom Options > idea64.exe.vmoptions中添加: -Dfile.encoding=UTF-8 ### 13.关于spring源码编译后的git报错我不知道怎么解决: ``` Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'git' .... ..... ...... org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'git'' ....... ```