gradle构建spring源码
参考文章
利用Gradle在Idea上构建Spring5.3.x源码(太不容易了!)
用Gradle构建spring源码项目
1.下载gradle并安装
环境说明:window11、 IDEA Community Edition 2023.3.4
官方网址: gradle官网
1.1 进入官网
点击如下位置

1.2 进入下载页面
第一步跳转后会进入一个新页面,该页面往下找,找到Download位置,选择Complete。该页面有很多内容,例如对jdk版本要求、gradle历史版本等等,可自行查看。

1.3 下载
下载文件,会得到如下zip结尾的压缩包。

1.4 解压
找一个喜欢的盘符解压压缩包,建议不要放在C盘。可以专门创建一个gradle文件夹,对多个版本进行统一管理。类似与maven,gradle也需要一个仓库存放项目依赖,我的仓库就是图片中gradle_repo

1.5 配置环境变量
右键【我的电脑】->【属性】->【高级系统设置】->【环境变量】
添加以下变量:
- GRADLE_HOME(解压后的文件夹路径)
F:\programing\gradle\gradle8
- GRADLE_USER_HOME(仓库的路径)
F:\programing\gradle\gradle_repo\gradle_repo8
- Path(将gradle_home添加到全局路径中)
%GRADLE_HOME%\bin
## 有的电脑可能不支持这种方式,改成完整路径就行
F:\programing\gradle\gradle8\bin
最后验证一下,在电脑命令行工具输入以下命令gradle -v,得到以下返回信息即证明安装成功。我这里没有实际配置gradle9,还是以前安装的8。如果想要切换其他版本,只要将GRADLE_HOME与GRADLE_USER_HOME、Path路径调整一下即可。
------------------------------------------------------------
Gradle 8.11.1
------------------------------------------------------------
Build time: 2024-11-20 16:56:46 UTC
Revision: 481cb05a490e0ef9f8620f7873b83bd8a72e7c39
Kotlin: 2.0.20
Groovy: 3.0.22
Ant: Apache Ant(TM) version 1.10.14 compiled on August 16 2023
Launcher JVM: 17.0.10 (Oracle Corporation 17.0.10+11-LTS-240)
Daemon JVM: F:\programing\jdkvm\jdk17 (no JDK specified, using current Java home)
OS: Windows 11 10.0 amd64
2.导入Spring源码
我个人使用的是gradle8、spring6源码
2.1 下载源码
源码前往github或者国内的gitee码云下载。建议使用git克隆的方式,压缩包下载后在实际使用中可能会遇到一些小问题。
2.2 导入idea
导入前先阅读源码中的import-into-idea.md文件。大概意思是需要先编译spring-oxm、spring-core这两个模块。

idea的gradle设置如下:

项目配置如下

2.3 修改配置文件
在build.gradle文件中,修改中央仓库地址为阿里云地址。
maven { url = "https://maven.aliyun.com/repository/central"}
maven { url = "https://maven.aliyun.com/repository/public"}

添加代码后,该文件右上角会出现一只小象图标,点击后项目就会自己下载对应依赖,然后就构建成功了。
在gradle目录的gradle-wrapper.properties文件中,修改构建时下载的gradle版本,避免每次都重复下载:
#distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
distributionUrl=file:///F:/programing/gradle/gradle-8.14.3-bin.zip
3. 报错与解决办法
我的办公电脑使用的是idea2020版,在构建spring6时出现了很多问题。我仅记录了两个,后面出现的问题都没能找到对应的解决方案。最终我重新下了一个社区版idea2025.2,gradle版本选择gradle-8.14.3,jdk选择jdk17,再次构建就没有任何错误了。
1.Unable to load class ‘org.gradle.util.VersionNumber’

解决方案:保持gradle设置的jdk版本与电脑设置的JAVA_HOME版本一致。
2.plugin [id: ‘io.spring.develocity.conventions’, version: ‘0.0.22’] was not found in any of the following sources
未能找到解决。
4.添加测试模块
右键项目new->module

创建完成后,修改自己模块下的build.gradle或者build.gradle.kts文件,添加阿里云仓库地址与项目依赖。
plugins {
id("java")
}
group = "org.springframework"
version = "7.0.0-SNAPSHOT"
repositories {
maven { setUrl("https://maven.aliyun.com/repository/central")}
maven { setUrl("https://maven.aliyun.com/repository/public")}
mavenCentral()
}
dependencies {
api(project(":spring-context"))
api(project(":spring-beans"))
api(project(":spring-core"))
api(project(":spring-aop"))
testImplementation(platform("org.junit:junit-bom:5.9.1"))
testImplementation("org.junit.jupiter:junit-jupiter")
}
tasks.test {
useJUnitPlatform()
}
476

被折叠的 条评论
为什么被折叠?



