Spring源码阅读指南_redis编译安装

Spring源码阅读指南_redis编译安装1.前言:经过多次拉取Spring源码编译失败经历,一下抓取配置编译过程各个软件版本可能有影响因此先做以记录(时间不同也会导致版本出入要注意)Idea:2020.1.1(参考文献博主2019.3.3版本也可)插件:maven(3.6.3)(未用到)Gradle(4.10.3)Kotlin(idea内装)JDK:原机安装1.8版本需要11版本(后续会说明JDK1.8问题)注:流程可能较长,源码拉取编译不易,耐心阅读2.流程2.1抓取Spring源码GITHUB网址:https://gi


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.前言:

经过多次拉取Spring源码编译失败经历,一下抓取配置编译过程各个软件版本可能有影响因此先做以记录(时间不同也会导致版本出入要注意)
Idea:2020.1.1(参考文献博主2019.3.3版本也可)
插件:maven(3.6.3)(未用到)Gradle (4.10.3) Kotlin(idea内装)
JDK:原机安装1.8版本 需要11版本(后续会说明JDK1.8问题)
注:流程可能较长,源码拉取编译不易,耐心阅读

2.流程

2.1抓取Spring源码

GITHUB网址:https://github.com/spring-projects/spring-framework
注意笔者:2020.12.9抓取版本 (v5.3.3-SNAPSHOT)版本可能会导致后期配置时的不适,同时码云上也有Springframework版本 暂未以此测试过

2.2gradle下载及安装

获取gradle-4.10.3,地址为:https://services.gradle.org/distributions/
在这里插入图片描述

,这里我们只选择安装文件即可,下载完毕后解压到相应目录即可(建议全英文目录) 直接访问该网址下载可能较慢,可搭”梯子“
配置环境变量同java:
在这里插入图片描述
建立系统变量GRADLE_HOME 值为解压目录中bin文件夹的上一级目录(bin在这个目录下)
在这里插入图片描述
编辑PATH系统变量

在这里插入图片描述
配置完成以后win+r,输入cmd进入dos界面,键入命令gradle -v,查看版本信息确保配置无误
在这里插入图片描述
此时可以打开idea配置
File->Settings
安装插件Gradle(该版本idea安装插件都需要重启)
在这里插入图片描述

File->Settings->Gradle 配置相关信息 Gradle user home 和刚刚环境变量配置路径一致bin上级目录
在这里插入图片描述

3.准备编译:

准备创建项目
在这里插入图片描述
选择拉取的项目路径:
在这里插入图片描述
选择导入模式
在这里插入图片描述
选择在新窗口打开编译
此时需要确认刚刚的Gradle配置是否无误打开File->Setttings ->Gradle 查看对比
此时可以看到项目开始加载下载,画圈处会有进度条或者直接以弹窗形式 该步骤需要等待较长时间
怀疑是因为Gradle没有配置国内镜像(类是maven) 这个大家可以查阅相关配置资料尝试
笔者下载三小时左右完成
在这里插入图片描述
下载编译完成右侧gradle框如图所示 控制台也会有成功提示(截图控制台显示是模拟的因为安装好了)

在这里插入图片描述
需要谈到一点,网上教程此处直接下载编译成功,笔者测试时有一次报错,jar包下载错误(怀疑是网络不稳定导致)如图点击reimport按钮可以再次尝试 完成
在这里插入图片描述
接下来可以在其中创建工程测试项目(注意此时源码可以注释修改 ,编译运行还可能有错因此还有记录)

4创建项目测试

项目中右键新建项目
画圈处是笔者后续编译出错的一个原因 应该是要JDK 11 否则spring-core包中有个java依赖找不到
在这里插入图片描述
在这里插入图片描述
这个时候需要修改build.gradle文件(类似于maven关联其他模块否则不能使用项目下其他包类)

在这里插入图片描述
内容如下

plugins { 
   
    id 'java'
}

group 'org.springframework'
version '5.3.2-SNAPSHOT'

repositories { 
   
    mavenCentral()
}

dependencies { 
   
    compile(project(":spring-context"))
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

在默认生成文件下添加了该行
在这里插入图片描述
刷新配置加载:
在这里插入图片描述
正常编写spring代码运行后如图所示错误:
在这里插入图片描述

5这里面有三个问题:

1.
Error:(354, 51) java: 找不到符号
符号: 变量 CoroutinesUtils
位置: 类 org.springframework.core.ReactiveAdapterRegistry.CoroutinesRegistrar
2.程序包jdk.jfr不存在
3.缺少 cglib 和 objenesis 包
Kotlin: warnings found and -Weeror specified

问题1解决:

在这里插入图片描述
在这里插入图片描述
添加依赖包 该包项目中有 在源码目录项目spring-core/kotlin-coroutines/build/libs下
在这里插入图片描述
选择在这里插入图片描述
即可解决

问题2解决:

更换idea的JDK为JDK11(注意这个可以官网下载安装即可不需要配置到环境变量去使用那么麻烦)
本地有相关JDK11包即可
在这里插入图片描述
在这里插入图片描述

问题3解决:

emmm这个应该不算是问题 只是自己没有学过gradle 不太清楚运行流程原理
右侧Gradle中找到spring-core模块的tasks/other下
在这里插入图片描述
找到:cglibRepackJar 和 objenesisRepackJar把双击加载即可在这里插入图片描述在这里插入图片描述
此时整个spring框架加载编译完成可以自己编写代码测试,开启阅读源码
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170019.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • OHEM 笔记

    OHEM 笔记说明1.本文是博主的学习记录,主要为了方便以后查看,当然如果能为别人提供帮助就更好了,如果有不对的地方请指正2.本文重点是了解OHEM算法以及它与hardnegativemining的异同点,尽量用较少篇幅表达清楚论文整体思路,其他一些不影响理解论文算法的东西有需要的请查看其他博客3.论文中的链接是我经过大量搜索,个人认为讲解最清楚的参考,看本文的过程中如对一些名词有疑惑可以直接点击参考…

    2022年5月7日
  • java字符串分割split你用对了吗「建议收藏」

    java字符串分割split你用对了吗「建议收藏」一、split介绍split()方法根据匹配给定的正则表达式来拆分字符串。注意:.、$、|和*等转义字符,必须得加\\。注意:多个分隔符,可以用|作为连字符。语法publicString[]split(Stringregex,intlimit)参数 regex–正则表达式分隔符。 limit–分割的份数。 返回值字符串数组。二、测试一如下示例,猜猜答案吧privatestaticvoid…

    2022年9月28日
  • 《天下强汉》3、强汉骄子,双星闪耀——卫青霍去病的华美人生[通俗易懂]

    《天下强汉》3、强汉骄子,双星闪耀——卫青霍去病的华美人生[通俗易懂]【档案】  姓名:卫青,字仲卿;霍去病,号嫖姚  生卒:卫青,约公元前157年—公元前106年;霍去病,公元前141年—公元前117年  性别:男  籍贯:河东平阳人(今山西临汾市西南)  家庭出身:私生子、奴隶(卫青);外戚(霍去病)  学历:无师自通的军事天才  相貌:疏眉朗目,高大俊美,英武矫健  秘密武器:武刚车  经典战役:龙城之战,雁门之战,河南之战,突袭右贤王之战,漠南之战,河西之战…

    2022年5月11日
  • Windows之IOCP

    1.简介IOCP模型属于一种通讯模型,适用于Windows平台下高负载服务器的一个技术。在处理大量用户并发请求时,如果采用一个用户一个线程的方式那将造成CPU在这成千上万的线程间进行切换,后果是不

    2021年12月28日
  • dex字符串解密_DEX文件混淆加密

    dex字符串解密_DEX文件混淆加密现在部分app出于安全性(比如加密算法)或者用户体验(热补丁修复bug)会考虑将部分模块采用热加载的形式Load。所以针对这部分的dex进行加密是有必要的,如果dex是修复的加密算法,你总不想被人一下就反编译出来吧。当然也可以直接用一个加密算法对dex进行加密,Load前进行解密就可以了,但是最好的加密就是让人分不清你是否加密了。一般逆向过程中拿到一个可以直接反编译成java…

    2022年6月27日
  • 人体表面积的计算公式_体表面积快速计算公式

    人体表面积的计算公式_体表面积快速计算公式体表面积(BSA)即是人体表面积。由于形状的特殊性,直接测量非常复杂。多年来,人们总结出许多计算公式用于估算体表面积。使用这些公式,身体表面积将以平方米计算出来。常用体表面积计算公式:1)Mosteller公式:一个最经常使用的公式,发布于1987年。BSA(m²)=([身高(cm)x体重(kg)]/3600)^½。2)DuBois与DuBois公式(1,注):BSA(…

    2022年4月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号