Spring源码编译一次性通过&遇到的坑解决方法

「Gradle Tips 系列」如何查看模块的所有依赖 本文描述了两种查看安卓项目中模块的依赖库的方法。 阅读详情

前言

spring源码本地编译,按网上的博客参考资料的操作步骤,总是会出现各种莫名其妙的错误。根据错误信息找解决方案,但在自己的环境下又总是编译不过去。结合参加培训学习Jack老师提供的方法,自己多种方式尝试,最终编译成功了。

为了验证自己的方式是否有失误的地方,全部过程我自己走了大概5遍,详细记录下每个步骤。如果按1天8小时计的话,为了这个源码编译至少花了3~4天时间。我觉得是值得的,为后面的源码阅读扫除一个拦路虎。

仅以此篇记录踩到的坑,为同样想读源码的同学可以在编译这一步少花一些时间,也可以后面源码阅读增加自信心。同时感谢在网上留下博客的同学,给予我相当多的帮助,这也是我想写这篇文章的原因。

参考博客:

https://www.it610.com/article/1295306604677242880.htm
https://www.cnblogs.com/haoxianrui/p/12825586.html
https://www.cnblogs.com/jhj117/p/5455081.html

1.资源及环境说明:

idea 2019.3.3

gradle-5.6.4版本(对源码里面的版本,版本需要一致,否则编译过程会出现各种异常)

jdk1.8 or 以上版本

spring-5.2.8.RELEASE

系统:win7 or 以上

2.下载源码

选择gitee下载速度快,官网速度非常慢,耗时约60s
git clone --branch v5.2.8.RELEASE https://gitee.com/Z201/spring-framework.git

2.1.查看源码gradle版本号

查看文件路径:/gradle/wrapper/gradle-wrapper.properties

对应的gradle版本:gradle-5.6.4-bin.zip

3.gradle下载&配置环境变量

3.1.gradle下载

# gradle 下载地址
https://services.gradle.org/distributions/
选择版本: gradle-5.6.4-bin.zip
下载到本机,并解压到指定路径

3.2.配置环境变量

配置环境变量
变量名:GRADLE_HOME
变量值:A:\java_about\gradle-5.6.4
在Path加上 ;%GRADLE_HOME%\bin

3.3.验证gradle

使用idea和gradle编译spring5源码 写在前面:spring 应该对于每个从事java开发的大兄弟们来说应该都不陌生的,作为一个从业两年多的小开发仔,个人觉得,每天都在面对spring,确从来没有编译过spring源码,有点不太合适。最近在研究spring源码的时候,突然想起编译一下spring源码,网上应该也有很多大神编译过spring源码,在这里我把我再编译过程的遇到的坑,来跟大家分享下。 版本工具:spring5.0.x,gr... 阅读详情

相关推荐

robot framework循环读取excel表操作

robot framework循环读取excel表操作 1、安装excellibrary,注意python3.7版本,需安装:robotframework-excel,robotframework-excellibrary-xwfintech 注意:网上有很多excel处理的,都是基于python2.7的,还有一些对python3以上都是修改包的方式,其实都不需要,在pip官网上有python3以上的excellibrary,名称是robotframework-excellib 2.0.0,但是该包关键字不

余墨的博客 1321

【Cadence】 ADS Dynamic Link使用教程

在Cadence617上使用ADS Dynamic Link

乾巽的博客 6081

QGIS效率提升神器:qgis_mcp插件+VSCode联合工作流配置全解析

本文详细解析了如何通过配置qgis_mcp插件与VSCode的联合工作流,实现语音控制和代码自动化来大幅提升QGIS操作效率。该方案将自然语言交互与现代编辑器生态结合,为地理信息专业人士构建了智能、高效的全新工作模式,彻底改变传统GIS操作方式。

weixin_29228203的博客 192

Adversarial Texture for Fooling Person Detectors in the Physical World

本文提出了对抗纹理的想法(AdvTexture),与基本补丁攻击不同对抗纹理可以生成任意大小,可以覆盖任意大小的不了,并且纹理的任何局部都有对抗性的效果。当衣服被对抗纹理覆盖是,摄像头捕捉到的每一个局部区域都可以攻击探测器,这成功解决了片段缺失的问题。提出了一种两阶段生成方法:基于环形收割的可扩展生成攻击(TC-EGA)来制作广告纹理。第一阶段,训练一个全卷积网络FCN作为生成器,通过采样随机潜变量作为输入来产生纹理(不同于GAN中传统的生成器架构,每一层都使用卷积运算)......

weixin_49171105的博客 1067

SAP Single Sign-On 全景指南:从传统 SAP SSO 到 SAP Secure Login Service for SAP GUI 的架构、场景与迁移实践

本文系统梳理了SAP生态下的单点登录技术方案,重点分析了SAP GUI的云化替代方案SAP Secure Login Service(SLS)。内容涵盖SNC、Kerberos/SPNEGO、SAML 2.0等核心协议的技术实现,对比了传统SAP SSO与新型SLS for SAP GUI的架构差异,并给出AS ABAP系统的具体实施路径。针对SAP GUI访问、浏览器访问Fiori/移动端等不同场景,提供了详细的协议选型建议和配置指南,帮助团队构建安全可靠且适应云时代的统一认证体系。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 274

TPAMI 2024 | 面向大型城市场景的快速建筑实例代理重建

大规模城市场景(特别是建筑物)的数字化是一个长期存在的开放问题,这归因于数据获取方面的挑战,如场景覆盖不完整、缺乏语义、规划路径的效率和可靠性低。在本文中,我们针对从航拍图像中重建城市建筑的问题,提出了一个有效的工作流程和一些新颖的算法,用于大型城市场景中高效的3D建筑实例代理重建。具体来说,我们提出了一种基于学习的新型方法,用于从航拍图像中进行城市建筑的实例分割,然后通过基于投票的算法将多视图实例信息融合到稀疏点云中(使用标准结构从运动管道重建)。我们的方法实现了从点云中对建筑实例进行有效的实例分割。

小白学视觉 322

GTSAM | gtsam::ISAM2

本节简单介绍`gtsam::ISAM2`类。

九七的博客 734

3. Matérn协方差模型与随机偏微分方程

对应的高斯马尔可夫随机场 (GMRF)可以通过使用某种随机偏微分方程(SPDE)明确构造,当由高斯白噪声驱动时,随机偏微分方程的解是具有 Matérn 协方差函数的高斯场(GF)

weixin_40614311的博客 1748

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: Java进阶——IO流核心模块与基本原理
下一篇: Java锁与线程的那些“不可描述”的事儿
JavaShark
博客等级 码龄4年 184粉丝 438原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值