Spring-编译Spring源代码
🌲 Spring-编译代码
1️⃣ 下载spring-framework源代码
spring-framework
的github地址
是✨girhub地址✨
。
因为网络原因,我从gitee镜像
上下载的,地址是[✨gitee镜像✨](https://gitee.com/mirrors/Spring-Framework)
。
下载之后,spring-framework目录
中有如下文件
他们的作用分别是
gradlew
- 会去自动下载gradle
,用下载的gradle给你构建项目build.gradle
- 配置仓库、构建插件等setting.gradle
- 配置模块、插件等
2️⃣ 修改build.gradle和setting.gradle
给build.gradle
添加如下,目的是让gradle去aliyun下载依赖包
buildscript {
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
maven { url 'https://maven.aliyun.com/repository/spring' }
}
}
//295行左右
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
maven { url 'https://maven.aliyun.com/repository/spring' }
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
maven { url "https://repo.spring.io/milestone" } // Reactor
}
然后修改setting.gradle
如下,不注销会导致获取不到ge.spring.io的授权
。
plugins {
id "com.gradle.enterprise" version "3.5.1"
// id "io.spring.ge.conventions" version "0.0.7"
}
3️⃣ 编译spring-oxm模块
gradlew :spring-oxm:compileTestJava
4️⃣ 使用idea打开
会自动编译
。如果没有,可以点击右侧gradle图标
。
5️⃣ 移除spring-aspects模块
因为spring-aspect
提供的ajc编译器
和javac
冲突,需要排除掉spring-aspects模块
。
🌳出现的问题
🍂缺少jfr包
错误如下
> Task :spring-core:compileJava
/home/s.tsypanov/IdeaProjects/spring-framework/spring-core/src/main/java/org/springframework/core/metrics/jfr/FlightRecorderStartupEvent.java:22: error: package jdk.jfr does not exist
import jdk.jfr.Label;
^
/home/s.tsypanov/IdeaProjects/spring-framework/spring-core/src/main/java/org/springframework/core/metrics/jfr/FlightRecorderStartupEvent.java:37: error: cannot find symbol
class FlightRecorderStartupEvent extends Event {
^
symbol: class Event
/home/s.tsypanov/IdeaProjects/spring-framework/spring-core/src/main/java/org/springframework/core/metrics/jfr/FlightRecorderStartupEvent.java:34: error: cannot find symbol
@Category("Spring Application")
出现是因为jdk要使用 JDK 8 update 262或之后版本
🍁Process 'command 'git'' finished with non-zero
有两个原因。
首先,查看你是否注销了setting.gradle
中的内容。
其次,查看你的gradlew命令
中模块名称
是否错误。