Skip to content

spring5源码构建和资料

jdxia edited this page Apr 18, 2025 · 12 revisions

改配置

我的工程里面这些都已经配好了, 不需要动了

gradle.properties配置文件调整后如下:

# 避免影响其他项目
version=5.2.6.RELEASE.CUSTOM
## Gradle编译时,会下载很多东西,占用内存较大,建议适当调大点
org.gradle.jvmargs=-Xmx2048M
## 开启Gradle的缓存
org.gradle.caching=true
## 开启Gradle并行编译
org.gradle.parallel=true
## 开启Gradle守护进程模式
org.gradle.daemon=true

在settings.gradle配置文件中的repositories配置项,需要再添加阿里云的仓库地址:

maven { url "https://maven.aliyun.com/repository/public" }

image 而在build.gradle配置文件中的repositores配置项中,也需要添加阿里云仓库的配置:

repositories {
			mavenLocal()
            maven { url "https://maven.aliyun.com/repository/public/" }
            maven { url "https://maven.aliyun.com/repository/central/" }
            maven { url "https://maven.aliyun.com/repository/spring/" }
            maven { url 'https://maven.aliyun.com/repository/google/' }
            maven { url 'https://maven.aliyun.com/repository/jcenter/' }
    
            maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
            maven { url "https://maven.aliyun.com/repository/spring-plugin/" }
            maven { url 'https://maven.aliyun.com/repository/grails-core/'}
            maven { url 'https://maven.aliyun.com/repository/apache-snapshots/'}
               
			mavenCentral()
			maven { url "https://repo.spring.io/libs-spring-framework-build" }
			maven { url "https://repo.spring.io/milestone" } // Reactor
			//新增 spring 插件库
			maven { url "https://repo.spring.io/plugins-release" }
		}

image 同时,我们需要注释以下的配置,因为在Gradle构建v5.2.6.RELEASE版本的Spring源码时,相应的jar包可能下载不到了,如果不注释掉的话可能会导致Gradle构建失败,这个坑大家需要注意下: image

image

去掉这个"-Werror"

image

checkstyle去除

image image image image

idea运行

参考: https://blog.csdn.net/java_lyvee/article/details/107300648

这是额外的方式, 和上面不一样 image

mac 是

distributionUrl=file://////opt/homebrew/opt/gradle/libexec/gradle-8.11.1-bin.zip

然后 idea 设置 image

image

编译

记得使用jdk8执行

在工程目录下运行 ./gradlew :spring-oxm:compileTestJava 等待差不多 3 分钟。如果无法科学网上,则会出现网络错误

然后编译, 编译有一定的顺序的

  • spring-core
  • spring-oxm
  • spring-context
  • spring-beans
  • spring-aspects
  • spring-aop
  • spring-tx
./gradlew :spring-core:compileTestJava
./gradlew :spring-oxm:compileTestJava
./gradlew :spring-context:compileTestJava
./gradlew :spring-beans:compileTestJava
./gradlew :spring-aspects:compileTestJava
./gradlew :spring-aop:compileTestJava
./gradlew :spring-tx:compileTestJava

最后编译整个的

./gradlew build -x checkstyleMain -x checkstyleTest -x checkstyleNohttp -x test

编译用Tasks-other-compileTestJava image

image

测试目录

有个spring-demo的模块是我搭建的, 可以调试spring.

spring-demo的test是我手写模拟mybatis和spring整合的

spring-webmvc里面的test目录, 里面的com.study里面是mvc的测试, 可以在那打断点调试

一些资料

https://www.yuque.com/renyong-jmovm/spring

https://www.yuque.com/books/share/5f19528d-d89b-4b69-a7bd-9f436a2dd734 如果要密码才能访问的话, 密码是rxka

https://blog.csdn.net/qq_36882793/article/details/106440723

https://blog.csdn.net/wts563540/article/details/126685935

https://andyboke.blog.csdn.net/category_8574636_2.html

spring扩展点 https://blog.csdn.net/qq_19283249/article/details/127182358

Clone this wiki locally