Spring5源码编译

源码下载

github下载地址: https://github.com/spring-projects/spring-framework/tree/5.0.x
下载不成功的话,我在网上找到了下面这个地址,本文也是基于这个源码进行编译的。先切换到5.2.X 再下载ZIP。
https://gitee.com/Z201/spring-framework.git

编译

  1. 导入工程到 IDEA:
    本来我想用IDEA自带的gradle,但是,一直失败,只能使用自己环境下的gradle.
    1.1 配置gradle:
    GRADLE_HOME = D:\gradle-5.6.4
    Spring5源码编译_第1张图片
    添加到Path: %GRADLE_HOME%\bin
    Spring5源码编译_第2张图片
    1.2 导入项目:
    Spring5源码编译_第3张图片
    -XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m

导入过程需要很久,我花了2个小时!!!

1.3 导入的过程中遇到这个错误,我就注释掉就好了。
io.spring.gradle-enterprise-conventions
Spring5源码编译_第4张图片

1.4 导入成功,是蓝色的文件夹图标,如下所示。导入失败是灰色的。
Spring5源码编译_第5张图片

  1. 根据import-into-idea.md预编译spring-oxm、spring-core
    Spring5源码编译_第6张图片
    Spring5源码编译_第7张图片
  2. build全项目
    Spring5源码编译_第8张图片

Error1: Could not find com.ibm.websphere:uow

在build.gradle上加上:

repositories {
	mavenLocal()
	maven { url "https://maven.aliyun.com/nexus/content/groups/public" }
	maven { url "https://repo.springsource.org/plugins-release" }
	mavenCentral()
}

Spring5源码编译_第9张图片

Spring5源码编译_第10张图片

Build成功不代表一定能运行成功。
跑org/springframework/web/servlet/DispatcherServletTests.java 测试类。直到所有测试通过。
以下为遇到的报错:

Error:(26, 38) java: 找不到符号 符号: 类 InstrumentationSavingAgent 位置: 程

spring-context/spring-context.gradle:11

compile(project(":spring-instrument"))

Error:(354, 51) java: 找不到符号

符号: 变量 CoroutinesUtils
位置: 类 org.springframework.core.ReactiveAdapterRegistry.CoroutinesRegistrar

引入spring-framework/spring-core/kotlin-coroutines/build/libs/下的JAR包

每次编译都会遇到不同的问题,慢慢解决。

万能大法:

先Clean,再compileTestJava

你可能感兴趣的:(Spring,源码编译)