开工啦~Spring 完美导入 IDEA

87ed56f5ae47b8dacc4d78407a927acf.gif

作者 | 阿Q

来源 | 阿Q说代码

有小伙伴私信我说想要研究下Spring的源码,想让我出一期教程来实现IDEA导入Spring源码,今天它来了~

版本 :IDEA 2020.2.3 ;Spring 5.0.x ;gradle 4.4.1 ;

先从github上面把 spring  源码下载下来并解压:

3b40764839b4016a142f8e883b356841.png

切记:解压完成后不要直接用IDEA 打开,因为Spring 的源码是用 gradle 构建的。如果已经用IDEA 打开了请删除后重新解压。

我们找到文件夹

spring-framework-5.0.x\gradle\wrapper

下的 gradle-wrapper.properties 文件,查看里边的 gradle 版本,去官网下载。

eb20afcb1302945540009451fc5aac06.png901c4c928d2fe8065e6af139c584b1d0.png

下载完成之后把 gradle 的环境变量配置一下,可以用gradle -version 来验证 gradle 是否配置成功

4ebd28416746a2e597a596b822a46633.png

USER_HOME/.gradle/ 下面新建 init.gradle 文件,将国外源换成国内镜像

allprojects {repositories {def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'all { ArtifactRepository repo ->if(repo instanceof MavenArtifactRepository){def url = repo.url.toString()if(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}}
}

spring-framework-5.0.x  下打开git 的窗口执行以下命令

./gradlew :spring-oxm:compileTestJava

该命令的作用是将 spring 转成IDEA 可以导入的工程结构。

dfc098ff41b951fd9175ca083f7b0eca.png

如果你新开的 Windowsdos 窗口,先进入源码的目录文件夹,执行命令不用加前面的./

配置 IDEA 中的 gradle

71e44201b315bec5b5e30d1054f8fa85.png

使用 File -> openSpring 工程导入到 IDEA 中,并等待 jar 下载完成。

如遇报错信息:

d07059fe65e0eceeff8098acc82cf329.png

build.gradle 中添加

maven { url "http://maven.aliyun.com/nexus/content/groups/public"}

其目的就是为了换成国内的镜像(init.gradle 有时没有生效)

b12b866fead212b2760149117b712b6b.png

编译时报错如下:

c6ffa61457e365d551f28c84352b534b.png

原因是 gradlegradle 插件版本过旧,更换更高的版本可以解决,但这个问题只是提示,不影响编译。

test 包中随便找了一个单元测试运行,成功运行

b32d9347ba3aa79ebc76d9e61a204ba5.png

以上就是今天的全部内容了。

aaad74179c665a8e4e91da5ed55754d8.gif

往期推荐

好难啊……一个 try-catch 问出这么多花样

k8s集群居然可以图形化安装了?

恶意流量威胁新趋势,揭秘网络黑产3大核心本质

将 k8s 制作成 3D 射击游戏,好玩到停不下来

6f450d169c07353494d03b92959c5709.gif

点分享

e3d22438471400552ab058f5a9974fe2.gif

点收藏

5e19e18b7cfc8d36d687bde88c2dbb64.gif

点点赞

1e3efc22cfd07ba7e4a03341b35c8ba7.gif

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于MaxCompute分布式Python能力的大规模数据科学分析

简介: 如何利用云上分布式 Python 加速数据科学。 如果你熟悉 numpy、pandas 或者 sklearn 这样的数据科学技术栈,同时又受限于平台的计算性能无法处理,本文介绍的 MaxCompute 可以让您利用并行和分布式技术来加速数据科学。也就是说只要会用…

5新建没有头文件_开垦绿茵版图迎来“真金白银”保障,新建足球场地可获财政补贴...

本周二,国家发改委、体育总局、国务院足球改革发展部际联席会议办公室共同制定了《全国社会足球场地设施建设专项行动实施方案(试行)》。《方案》指出,对新建11人制标准足球场,每个球场补助200万元;对新建5人制、7人制(8人制)足球…

网站免费空间和服务器的区别,网站空间和服务器的区别

网站空间和服务器的区别 内容精选换一换汇总对象存储服务OBS的各项功能,并对其进行简单的介绍,帮助您从整体上了解OBS的功能特性。CCE Turbo集群是基于云原生基础设施构建的云原生2.0容器引擎服务,具备软硬协同、网络无损、安全可靠、调度智能…

基于 MaxCompute + Hologres 的人群圈选和数据服务实践

简介: 本文主要介绍如何通过 MaxCompute 进行海量人群的标签加工,通过 Hologres 进行分析建模,从而支持大规模人群复杂圈选场景下的交互式体验,以及基于API的数据服务最佳实践。 本文作者 刘一鸣 阿里云智能 高级产品专家 人群圈…

一款强大的 Kubernetes API 流量查看神器

作者 | 小碗汤来源 | 我的小碗汤mizu 是为 Kubernetes 提供的一个简单而强大的 API 流量查看器,可以查看微服务之间的所有 API 通信,以帮助调试和排除故障。相当于 Kubernetes 的 TCPDump 和 Wireshark。简单而强大的 CLI丰富的过滤规则API 调用实时监控…

Redis 巧用数据类型实现亿级数据统计

作者 | 码哥字节来源 | 码哥字节在移动应用的业务场景中,我们需要保存这样的信息:一个 key 关联了一个数据集合,同时还要对集合中的数据进行统计排序。常见的场景如下:给一个 userId ,判断用户登陆状态;两亿…

2021杭州·云栖大会来了!门票免费预约!

2021杭州云栖大会,定了! 10月19日-22日,就在杭州云栖小镇 2场重磅主论坛上百场分论坛 超4万平米科技展 今年,云栖大会将首次免费开放 门票可在官网免费预约 入口现已开启 戳此预约,我们不见不散! ​ …

js 可以做什么东西_Deno需要做什么才能取代Node.js?

全文共1843字,预计学习时长5分钟Deno是一个Javascript/TypeScript的运行时,旨在取代Node.js的地位。它拥有广泛功能,讨论度非常高,在Github上有将近68000个星星:既然这么受欢迎,那么有人要问了:…

37 手游基于 Flink CDC + Hudi 湖仓一体方案实践

简介: 介绍了 37 手游为何选择 Flink 作为计算引擎,并如何基于 Flink CDC Hudi 构建新的湖仓一体方案。 本文作者是 37 手游大数据开发徐润柏,介绍了 37 手游为何选择 Flink 作为计算引擎,并如何基于 Flink CDC Hudi 构建新的湖…

手把手搭建一个容器化+代理网关+可视化管理环境

作者 | togettoyou来源 | SuperGopher前言本文主要分享个人服务器的应用部署方案现状,容器化代理网关可视化管理。准备阶段我购买的是腾讯云服务器(2 核 4GB 3Mbps)域名也是在腾讯云备案过的,提前准备域名解析配置环境安装 Docker…

漫画 | 一口气搞懂 Serverless !

简介: 第二届云原生编程挑战赛为热爱技术的年轻人提供一个挑战世界级技术问题的舞台,希望用技术为全社会创造更大价值。 作者 | 刘欣 呃,我可能是别人眼中所说的不用奋斗的一代。 大家喜欢听的什么多姿多彩的生活,我都经历过一…

OpenKruise v0.10.0 新特性 WorkloadSpread 解读

简介: 针对需求,OpenKruise 在 v0.10.0 版本中新增了 WorkloadSpread 特性。目前它支持配合 Deployment、ReplicaSet、CloneSet 这些 workload,来管理它们下属 Pod 的分区部署与弹性伸缩。下文会深入介绍 WorkloadSpread 的应用场景和实现原理…

CSS 状态管理,玩出花样了!

作者 | 零一来源 | 前端印象CSS用于交互的方式无非就那么几种:伪类::hover、:link、:active ...动画:animation过渡动画:transition这些交互方式组合起来,真的可以玩出一些花样,例如我们本文的主题&#xf…

告别Kafka Stream,让轻量级流处理更加简单

简介: 还在花精力去选型Kafka组件去做清洗转化?来试试Kafka ETL任务功能! 一说到数据孤岛,所有技术人都不陌生。在 IT 发展过程中,企业不可避免地搭建了各种业务系统,这些系统独立运行且所产生的数据彼此独…

元宇宙“性骚扰”现象频出,Meta推出“个人结界”能保护好女玩家吗?

作者 | 小码君来源 | 抓码青年元宇宙,可以说是最近最炙手可热的概念了。各大厂纷纷入局元宇宙,Faceebook甚至将总公司名字都改名为Meta。不过盯上元宇宙的可不止资本大鳄,还有一些不怀好意的色狼。据外媒报道称,在Meta的Oculus设备…

【CDS技术揭秘系列 01】阿里云CDS-OSS容灾大揭秘

简介: 本文主要阐述 CDS 产品中 OSS 服务在容灾方面的部署形态以及实现的其本原理。 容灾功能可以保证用户一份数据在多个地方存在冗余备份,当某个机房出现极端异常(比如物理损毁)情况下,数据也不会出现丢失&#xff1…

如何促合作共赢?技术人的一点经验分享

简介: 本文作者将通过与詹韦团队一起合作的《树懒平台》,分享在工作过程中,我们什么情况下会有合作诉求?有了合作诉求之后,如何寻找对的人?锁定候选人之后,如何打动对方促成合作?合作…

不记得 Git 命令? 懒人版 Git 值得拥有!

作者 | Eason来源 | 程序员巴士Git的强大是所有开发者都心知肚明的事情,但是其多样的命令令人很是难受。不过在Github上有着这么一个开源项目lazygit[1]。Lazygit是由Jesseduffield开发并维护的项目,其代码托管在Github。通过使用Lazygit,我们…

Dubbo3.0|阿里巴巴服务框架三位一体的选择与实践

简介: 服务框架就像铁路的铁轨一样,是互通的基础,只有解决了服务框架的互通,才有可能完成更高层的业务互通,所以用相同的标准统一,合二为一并共建新一代的服务框架是必然趋势。Dubbo3.0 是 Dubbo2.0 与 HSF…

全球首款乘云而来的存储产品CDS诞生!

9月22日,阿里云发布全球首款“云定义存储”(Cloud Defined Storage,CDS)产品。作为一款本地部署的分布式存储产品,阿里云CDS拥有与公共云存储相同的技术架构,让企业客户在本地也能部署和使用与公共云一致的…