gradle+idea配置阅读Spring源码开发环境(解决jar包下载缓慢问题)

【spring源码系列-0】spring源码下载、编译、debug 目录: 零、资源准备及环境配置 github链接:https://github.com/spring-projects/spring-framework 一、 二、 三、问题 1、CoroutinesUtils找不到该类 Error:(354, 51) java: 找不到符号 符号: 变量 CoroutinesUtils 位置: 类 org.springframework.core.Reactiv... 阅读详情

gradle+idea配置阅读Spring源码开发环境(解决jar包下载缓慢问题)

阅读源码是学习Spring的最好的方法,但是Spring不是使用maven进行构建,而是使用gradle进行构建的。gradle大家可以理解为和maven一样的东西,整体思想和maven也差不多。

很多博客都大概总结了使用gradle和idea编译spring的步骤,在编译中需要下载非常多的jar包,但是由于一些众所周知的原因,编译很容易失败,而且非常缓慢。这就是本文要解决的问题。

0 前提

进行安装之前,请确保你的jdk环境是1.8+,并且成功设置好了环境变量。
使用 java -version 进行检查

我的环境:

  1. IntelliJ IDEA 2019.3.2 (Ultimate Edition)
  2. JDK 1.8.0

1. 安装gradle

spring 源码是使用gradle进行管理的,所以首先得下载安装好gradle 并设置好环境变量。

1.1 下载gradle

建议到下面的网址中下载,比官网点击download 要快很多

网址:https://services.gradle.org/distributions/

我下载的是gradle-5.6.all.zip

在这里插入图片描述

下载完之后 解压到你想要的文件夹中,注意路径不要出现中文。

1.2 配置环境变量

  • linux和mac中在~/.bashrc 中配置 并且保存设置

    # 配置gradle环境变量
    export gradle_home=/usr/local/gradle-5.6/bin
    export PATH=$PATH:$gradle_home
    
  • windows中
    假设windows安装在 E:\install-dev\gradle-5.6.3 ## 修改为自己的路径
    在这里插入图片描述
    在path中添加下列信息

    在这里插入图片描述

1.3 查看是否配置成功

gradle -v
  • 1

在这里插入图片描述

1.4 配置gradle,加速

在gradle根目录:\init.d\下,新建一个:init.gradle 文件,添加以下内容

设置gradle的源 为阿里云

allprojects{
   repositories {
       def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
       all { ArtifactRepository repo ->
           def url = repo.url.toString()
           if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
               project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
               remove repo            }
       }
       maven {
           url REPOSITORY_URL        }
   }}

2. 下载spring 源码

2.1 下载源码

网址:https://github.com/spring-projects/spring-framework/tree/5.0.x

我下载的是spring 5.0的源码 可以使用 git下载

git https://github.com/spring-projects/spring-framework.git
  • 1

如果比较慢,可以直接下载zip包,解压即可。
在这里插入图片描述

2.2 修改配置

配置spring源码根目录下的build.gradle文件:
注释configurations.all (注意不要注释错了,这里要小心,截图如下)
同时,添加一段配置

allprojects {
	repositories {
		maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
	}
}

在这里插入图片描述

2.3 开始编译

在spring源码根目录下
windows使用命令 : gradlew :spring-oxm:compileTestJava
linux和mac使用命令: ./gradlew :spring-oxm:compileTestJava

体验飞一样的感觉吧!我第一次编译只用了2分钟,和其他教程动不动failed完全不一样!
在这里插入图片描述

3. 导入idea

快成功了,但是还需要配置!

  • File -> New -> Project from Existing Sources -> 找到选择spring-framework源码

  • 然后配置项目的gradle 为自己的下载安装的gradle,不用使用idea自带的
    在这里插入图片描述

这个时候 idea应该开始自动build了,然而发现 还是很慢。这里还有两处配置

  1. 修改spring源码根目录中的gradle.properties文件

    org.gradle.daemon=true
    org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    org.gradle.parallel=true
    org.gradle.configureondemand=true
    

    在这里插入图片描述

  2. 修改spring源码根目录中的setting.gradle文件,在第一行添加下面的配置,注意是在第一行 添加!不是覆盖所有!

    # 在第一行插入
    pluginManagement {
    	repositories {
    		maven { url "https://maven.aliyun.com/repository/public" }
    		gradlePluginPortal()
    		maven { url 'https://repo.spring.io/plugins-release' }
    	}
    }
    

    在这里插入图片描述

最后,保存好一切设置后,建议重启idea,重新打开项目,然后就会发现,飞一样的速度,编译通过!
在这里插入图片描述

Spring v5.2.9.RELEASE 源码阅读环境搭建 1、环境准备 1.1、源码下载 GitHub 或者是 Gitee 官网 Fork 源码到自己仓库 找到合适的版本 注意:之所以说合适的版本,一方面是自己阅读的需要,一方面是基于环境的依赖,比如:JDK 版本的依赖 查看源码中的 gradle 版本:之所以强调,是因为很多博客中博主下载源码时的源码中 gradle 版本不一定和自己下载的参考博主下载的对应的源码中的 Gradle 版本一直,官网会不定时源码中 gradle 的版本,所以造成很多人按照博主的方式配置不一定能成功!! 如图:查看自己需要 阅读详情

相关推荐

Java反编译实战:从War/Jar包到可读源码的完整指南

反编译(Decompilation)是软件逆向工程中的核心技术,其原理是将编译后的字节码(.class文件)转换回近似源代码的形式。这项技术的核心价值在于帮助开发者理解、调试和维护那些因历史原因丢失源码的遗留系统,尤其在Java后端开发和系统维护场景中至关重要。通过反编译,工程师可以分析程序逻辑、排查线上Bug,或进行必要的二次开发与适配。在实际应用中,针对SpringBoot等主流框架打包的应用,结合JD-GUI、FernFlower等工具,能够有效处理嵌套Jar包和混淆代码,最终还原出可理解、可维护的工

weixin_34293141的博客 481

解决gradle下载jar包超时问题

另外 gradle-wrapper.properties 配置要使用国内地址代替官方地址去下载 gradle,否则也会超时。

PANDA博客 2174

开源有限元dealii学习——step-1

#简介 dealii是一款开源的求解偏微分方程的有限元软件,它优点: 1.多种单元类型 2.可以自适应网格 3.文档和范例齐全 4.与其它库有良好的接口 5.使用c++编写 #安装 dealii可以在官网上或者github上下载源码,解压后进入源文件目录安装。 mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/path/to/install...

weixin_42312251的博客 4385

彻底解决gradle与gradle plugin匹配关系以及gradle下载缓慢的问题

我们刚接触安卓开发,在环境搭建阶段,安装Android studio的时候或者新建一个项目的时候,往往会卡到一个地方一直等待,一直等待。。。直到最后报红线,怎么搞都不行。最后崩溃,放弃了,毁灭吧,搞不了了。 其实,就是一个gradle下载缓慢的小问题把好多新人挡在了Android开发的大门之外。 唉唉,朋友,别放弃,看这里,都是小问题。 这里给大家分享一下个人的解决方案。 先说原因:之所以下载缓慢,是因为gradle服务器在国外,国内网络访问自然慢啊,Android Studio已经尽力了。 再说方法: 我

fxjzzyo的博客 4万+

DW1000芯片实战:如何用UWB技术打造10厘米精度的室内定位系统(附Arduino代码)

本文是一份基于DW1000芯片和UWB技术的实战指南,详细介绍了如何从零构建一个精度可达10厘米的室内定位系统。内容涵盖硬件选型与连接、软件环境配置、核心的双向测距算法实现,并深入探讨了信号干扰抑制、功耗优化等实战挑战,为物联网开发者提供了完整的Arduino代码和部署思路。

root9的博客 498

STM32 BootLoader 入门教程:从原理到 APP 跳转实现

在 STM32 项目开发中,BootLoader 通常用于实现固件升级、程序引导和应用程序校验。本文从最基础的 BootLoader 原理开始,讲解 STM32 内部 Flash 分区设计、APP 地址偏移、向量表重定位、BootLoader 跳转 APP 的核心代码,以及实际开发中常见的问题。本文适合刚开始接触 STM32 BootLoader、IAP 在线升级、串口升级、OTA 升级的开发者阅读。

lidecong133的博客 1678

Spring源码编译加速

Spring源码编译加速,解决本地卡、慢等问题 最近在学习spring源码,下载源码后,使用gradle编译源码时,发现速度特别慢,在网络上参照了很多优秀的博客,修改了一系列的配置,包括settings.gradle、build.gradle 等,甚至还将本地的gradle文件夹里创建了一个init.gradle的文件,发现还是没有用,编译结束还是需要将近1个小时,当然,这个可能跟我的网络也有一定的关系。 上干货:用户目录上创建一个.gradle文件,并将里面的URL配置到阿里云,再次编译,3分多钟就结束了

chenjin_csdn的博客 1685

Abaqus 气动软体抓取器:从超弹性材料建模到抓取力仿真全流程解析

本文详细解析了Abaqus在气动软体抓取器仿真中的应用全流程,涵盖超弹性材料建模、接触设置优化到抓取力仿真等关键环节。通过实战案例分享Yeoh模型参数拟合、不可伸展层建模技巧及收敛优化策略,帮助工程师高效解决有限元仿真中的常见问题,提升软体机器人研发效率。

weixin_28689193的博客 238

gradle下载速度太慢(springboot项目)【踩坑】

在springboot项目中,通过手动下载gradle资源,解决gradle自动下载速度过慢的问题

tao355667 1525

Embarcadero Dev-C++ 6.3安装教程【保姆级】

Embarcadero Dev-C++ 6.3安装教程,保姆级教程~

Thebest_jack的博客 1万+

【STM32Cube_14】使用硬件I2C读写环境光强度传感器(BH1750)

本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件I2C外设读取环境光强度传感器数据(BH1750)

Mculover666的博客(嵌入式) 7243

踩坑之Spring源码工程构建中gradle下载过慢而无法构建成功

前言 阅读源码的时候,总是习惯于添加中文注释而便于自身学习,这样一来就需要自己本地利用gradle进行本地构建Spring源码工程获得相应jar包,由于gradle服务器在国外,国内下载过慢,如何解决这一问题呢? 步骤 (0)工具安装:gradle IDEA 等 (1)找到spring源码工程中对应使用的gradle版本,利用百度云之类的工具下载; (2)将下载的文件(注意就是压缩文件)放置下文件目录下: C:\Users\24924\.gradle\wrapper\dists\gradle.

研究生生活、学习记录 1890

扩散模型实战:从零开始训练手写数字生成模型

手写数字的数据集是绝大部分炼丹师的深度学习初恋,这篇博客以代码为主,手把手带读者搭建一个基于扩散模型的手写数字生成模型,非常适合刚接触扩散模型的初学者学习。

沉迷单车的追风少年 1915

Spring源码阅读之编译带源码的jar包

一、问题说明 我在调试源码时,有时需要新建一个项目来写单元测试,没有办法直接在源码的test包下面写 比如:我需要测试下spring的自定义标签(需要依赖spring-core、spring-context、spring-beans、spring-expression),还要在resources目录下创建META-INF文件夹,放入spring.handlers和spring.schemas文...

u010999809的博客 1982

脑肿瘤MRI图像分割实战:基于U-Net的深度学习完整指南

脑肿瘤是中枢神经系统最常见的疾病之一,全球每年有超过30万人被诊断为原发性脑肿瘤。在临床诊断和治疗过程中,磁共振成像(MRI)已成为评估脑肿瘤的标准影像学检查方法。然而,手动分割MRI图像中的肿瘤区域是一项耗时且依赖于专家经验的工作,不同医生之间可能存在显著差异。

YOLO 151

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Spring源码缺少cglib,objenesis的jar包问题分析及下载

Spring源码缺少cglib,objenesis的jar包问题分析及下载问题错误分析问题解决jar包源来 问题 本人最近在阅读spring源码的时候,下载下来以后,使用gradle编译发现以下错误 错误分析 cglib 和 obienesis 的编译错误解决 为了避免第三方 class的冲突, Spring把最新的 cglib和 objenesis重新打包( repack)了, 它并没有在源码里提供这部分的代码,而是直接将其放在 jar 包当中 , 代码后出现编译错误。 那么为了画过编译,我们要把缺失的

weixin_43691942的博客 689

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

idea导入spring源码后spring-core由于缺失相关jar包导致报错的详细解法!!

报错原因是缺失spring-cglib-repack-3.2.6.jar和spring-objenesis-repack-2.6.jar 那么该如何解决? 我刚接触spring,刚一进门,匠心独运等形容词便从各个网站朝我涌来,好奇心的趋势下我决定攻读spring源码,于是我从github上找到了代码,准备开始研读,但是用idea打开后便出现问题,我尝试了各种不同的办法,一开始看的书就是《spring 源码深度解析》…但确实我认为他的步骤并不是人人适用,在没有对aspecJ和idea有深刻的认识之前,书中的操

Versionssf的博客 1284

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Spring源码构建(一次成功)

Spring在java开发领域已然是必不可少的框架,在我们日常开发过程中不仅仅会使用它,而且需要明白它的一些基本原理和机制,在找工作面试的过程中也是几乎必考的问题,这里就需要翻阅Spring的源码进行学习,阅读源码的好处想必就不必过多言语。结合网络上各种各样的源码构建教程也是五花八门,很多人都是各种踩坑之后也没成功,笔者也是在翻阅了很多篇博客之后不下于5次构建最终才成功.....真是酸爽(应该是本人过于菜鸡[手动滑稽])。

m0_71420252的博客 1882

Spring源码解析:(二)源码阅读环境搭建

源码阅读环境搭建前言准备工具安装gradle 和配置环境变量下载spring 源码下载aspectj-1.9.4-src.jaridea项目搭建demo项目的尾言 前言 作为一个java程序员,必不可少的与Spring打交道,笔者经常看一些相关博客、视频系列,但学而不思,纸上谈兵让笔者对Spring的了解只是表面层次,所以纸上得来终觉浅,绝知此事要躬行。 准备工具 gradle 6.0以下版本(...

668

Spring 5.x 源码阅读环境构建

目录 设备环境 搭建gradle环境 配置idea 下载缺失jar包 设备环境 系统环境:win10 java版本:jdk1.8 ide:IntelliJ IDEA 已从GitHub拉取spring5.x源代码 搭建gradle环境 1)下载gardle安装包(官方下载地址:http://services.gradle.org/distributions/注意需要下载4版本...

weixin_43958969的博客 394

Spring源码阅读 之 搭建源码阅读环境(IDEA)

检出源码: GitHub:https://github.com/spring-projects/spring-framework.git 可以按如下步骤:(须确保Git已正确安装) Git正确安装后,在桌面上右击Git bash here,打开Git命令行窗口 执行命令:git clone https://github.com/spring-projects/spring-framework.g...

做一个认真的程序员 1854

Spring源码-Spring源码导入到Idea

1、安装jdk 安装jdk1.8以上版本,配好环境变量,spring最新的代码已经使用jdk8的一些新特性,故必须jdk8或以上版本。 2、安装git客户端 由于spring源代码已经托管GitHub 3、安装grandle 下载安装gradle 3.0 以上版本(我安装的是4.4的版本),也需要配置好环境变量 下载地址:http://services.gradle.org/distr...

常威打来福 451

spring源码:阅读环境搭建过程

文章目录1.前提条件2. 下载spring 5.0.x3. 参考spring根目录import-into-idea.md 1.前提条件 不要安装gradle或者不配置gradle环境变量,可以配置GRADLE_USER_HOME。 GRADLE_USER_HOME指的是你需要配置的环境变量。该环境变量决定了执行 project/gradle/gradle-rapper.jar时下载 project/gradle/gradle-wrapper.properties中指定版本gradle的存放位置。 2. 下载

tobebetter9527的博客 218

《Java 100 天进阶之路》第79篇:Spring源码阅读技巧(2026版)

摘要:Spring源码超过150万行,硬啃等于在迷宫里没有地图。一文掌握源码阅读五大黄金法则(先宏观再微观、线性理解数据流动、关注变量名、抓大放小、多遍阅读)、四大入口(refresh()/SpringApplication.run()/AnnotationConfigApplicationContext/具体功能点)、IDEA调试技巧大全(条件断点/日志断点/Evaluate Expression/Spring Debugger插件)、核心模块导航与关键类速查。附避坑清单、面试高频考点与追问陷阱。掌握方法

折哥|智能物流与Java实战,副高数据库工程师。深耕出版社物流WMS/OMS(线体/立库/VGA),也分享Java进阶与OMS电商对接。Oracle→PG实战派。相信沉淀可迁移能力,分享通用技术,不藏不虚。 5621
上一篇: Linux+Docker+Jenkins+Git自动化部署SpringBoot项目
下一篇: JVM三色标记笔记
小亮彡
博客等级 码龄7年 6粉丝 22原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值