欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring5源码编译

程序员文章站 2022-03-19 13:27:13
...

源码下载

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源码编译
    添加到Path: %GRADLE_HOME%\bin
    Spring5源码编译
    1.2 导入项目:
    Spring5源码编译
    -XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m

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

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

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

  1. 根据import-into-idea.md预编译spring-oxm、spring-core
    Spring5源码编译
    Spring5源码编译
  2. build全项目
    Spring5源码编译

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源码编译

Spring5源码编译

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 源码编译