spring 源码编译

本文详细介绍了如何下载Spring框架的源码,包括从GitHub和码云两个平台,并提供了不同下载方式的步骤。同时,文章还指导了Gradle的安装,强调了与IDEA和Spring版本的兼容性。在配置Gradle时,修改了仓库地址以提高编译速度,并解决了可能出现的错误。最后,针对IDEA用户,提供了导入项目后的配置建议。
摘要由CSDN通过智能技术生成

我用的是
spring 版本为5.2.9.BUILD-SNAPSHOT
gradle 版本为5.6.4
idea 版本为2019.3.4
在选择的时候注意版本兼容以及和idea的版本兼容

在这里插入图片描述

1.下载spring源码

第一种下载:从github下载

spring官网https://spring.io/
第一步:进入官网
在这里插入图片描述
第二步:进入spring framework 点击右边的github头像 进入github下载原因
在这里插入图片描述
github地址 https://github.com/spring-projects/spring-framework

第二种下载:从码云下载

码云地址 https://gitee.com/
码云仓库地址 https://gitee.com/mirrors/Spring-Framework?_from=gitee_search

第一步:进入码云搜索spring framework 找到Gitee极速下载
在这里插入图片描述
第二步:进行克隆下载
在这里插入图片描述
git clone -b 5.2.x https://gitee.com/mirrors/Spring-Framework.git
可以使用-b 参数指定分支克隆自己想要的版本

下载之后后目录结构:

在这里插入图片描述在这里插入图片描述

2.安装gradle

在安装之前要先安装jdk
现在的spring是用gradle进行编译的,不在使用maven
(gradle和maven一样只是比mave更简洁)

gradle官网 https://gradle.org/

第一步:进入官网选择About -> Gradle Releases
在这里插入图片描述

第二步:选择要下载的版本 点击后面的complete进行下载。版本选择查看spring源码中的
gradle -> wrapper ->gradle-wrapper.properties 配置文件

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
# 配置文件 gradle版本
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

# gradle安装完成后将distributionUrl改成本地地址
distributionUrl=file\:///D:/E/java/soft/gradle/gradle-5.6.4-all.zip

注意:gradle-wrapper.properties配置文件中的distributionUrl改成本地地址,不然每次都会下载新的gradle

gradle-bin为安装包,gradle-all为源码加安装包,选择bin包就可以了 我用的是all包
在这里插入图片描述
除了从官网下载还可以从 https://services.gradle.org/distributions/ 下载
gradle-src为源码包,gradle-bin为安装包,gradle-all为源码加安装包
在这里插入图片描述

第三步:下载后解压并配置环境变量
1、 配置:GRADLE_HOME
在这里插入图片描述
2、配置 PATH
%GRADLE_HOME%\bin
在这里插入图片描述

3、配置:GRADLE_USER_HOME
gradle的仓库位置
在这里插入图片描述
进入命令窗口执行 gradle -v 如果出现如下信息说明安装成功
在这里插入图片描述

修改一下spring配置文件 仓库地址改为阿里云

(访问外网编译速度慢,所以修改成阿里云仓库地址)

第一:修改 settings.gradle 文件 在文件的开始部分

pluginManagement {
	repositories {
	    // 新增阿里云仓库地址
		maven { url 'https://maven.aliyun.com/repository/public' }
		gradlePluginPortal()
		maven { url 'https://repo.spring.io/plugins-release' }
	}
}

第二:修改build.gradle 搜索repositories关键字 大概在292行左右

	repositories {
		// 在前面加上这两个地址
		maven { url "http://maven.aliyun.com/nexus/content/groups/public/"}
        maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
		mavenCentral()
		maven { url "https://repo.spring.io/libs-spring-framework-build" }
		maven { url "https://repo.spring.io/snapshot" } // Reactor
	}

在repositories 下面有一个configurations.all 配置
新增了一个 force ‘xml-apis:xml-apis:1.0.b2’
如果在编译的时候提示xml-apis:xml-apis:2.0.2 不全需要替换成1.0.b2的时候加这个加上
如果编译不报错可以不用加

	configurations.all {
		resolutionStrategy {
			cacheChangingModulesFor 0, "seconds"
			cacheDynamicVersionsFor 0, "seconds"
			// 增加
			force 'xml-apis:xml-apis:1.0.b2'
		}
	}

idea配置gradle

在这里插入图片描述

导入项目后配置

在这里插入图片描述

到此spring源码下载和gradle配置完成 可以进行编译了

编译之后运行遇到的错误

1、CoroutinesUtils找不到该类
Error:(354, 51) java: 找不到符号
符号: 变量 CoroutinesUtils
位置: 类 org.springframework.core.ReactiveAdapterRegistry.CoroutinesRegistrar

解决方法:点击File -> Project Structure -> Libraries -> + -> Java,然后选择spring-framework/spring-core/kotlin-coroutines/build/libs/kotlin-coroutines-5.2.9.BUILD-SNAPSHOT.jar,在弹出的对话框中选择spring-core.main,在重新build项目即可然后在gradle点一下刷新。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、No such property: GradleVersion for class: JetGradlePlugin
提示这个错误 idea版本和gradle版本不匹配

编译Spring源码,你需要先安装JDK并下载Spring源码。你可以从Spring官方的GitHub库中下载源码,链接是https://github.com/spring-projects/spring-framework。如果你觉得下载速度慢,也可以使用这个已经下载好的链接:https://pan.baidu.com/s/18lEeQCwQKo1E4bli4SAJ2A 提取码:dvda。一旦你下载好了源码,你可以按照以下步骤进行编译: 1. 配置好JDK环境变量,确保你可以在命令行或终端中运行Java和Javac命令。 2. 打开命令行或终端,进入到你下载好的Spring源码的根目录。 3. 运行命令`./gradlew build`(对于Windows系统,运行`gradlew.bat build`),这将使用Gradle构建项目并编译源码。 4. 等待编译完成,你可以在构建目录中找到生成的编译结果。 请注意,编译Spring源码可能需要一些时间和计算资源,同时也需要一些基本的编译知识和工具配置。建议你在编译之前先阅读Spring官方文档中关于构建和编译的指南,以确保你有必要的环境和了解编译的要求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [spring源码编译](https://blog.csdn.net/jiayoubaobei2/article/details/127311223)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [spring源码编译完整版](https://blog.csdn.net/qq_39409977/article/details/107904932)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值