当前位置: 首页 > news >正文

spring源码编译

spring源码编译

  • 1、安装gradle
  • 2、拉取源码
  • 3、配置gradle文件来源及镜像仓库
  • 4、预编译
  • 5、验证
  • 6、可能遇到的报错
    • 6.1、jdk.jfr不存在
    • 6.2、checkstyleMain
    • 6.3、org.gradle.api.artifacts.result.ComponentSelectionReason.getDescription()Ljava/lang/String
    • 6.4、其他

jdk:14
gradle:v7.2
spring:v5.3.19
idea:2021.1.3

1、安装gradle

目前公司所用的spring版本是5.3.19。所以就以该版本为目标,其对应的gradle版本可以是7.2(参考自gradle/wrapper/gradle-wrapper.properties文件)。下载对应的版本并配置环境变量即可。
下载地址:https://downloads.gradle-dn.com/distributions/gradle-7.2-all.zip
环境变量配置:
新增gradle相关变量

GRADLE_HOME为解压后的根目录。
GRADLE_USER_HOME为仓库地址,也可以不在gradle-7.2目录下。自行决定仓库目录。

在这里插入图片描述
编辑path变量
在这里插入图片描述
最好也先将idea的gradle配置一下
在这里插入图片描述

2、拉取源码

git clone https://github.com/spring-projects/spring-framework.git
在这里插入图片描述
切换到v5.3.19分支
git checkout v5.3.19
在这里插入图片描述

3、配置gradle文件来源及镜像仓库

修改gradle/wrapper/gradle-wrapper.properties文件把gradle文件来源指向自己本地文件(不然每次都会去下载网速不好会很慢)
在这里插入图片描述
修改build.gradle配置镜像仓库

  	maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}

在这里插入图片描述
修改settings.gradle配置镜像仓库

maven { url “https://maven.aliyun.com/repository/public” }

在这里插入图片描述

4、预编译

gradlew :spring-oxm:compileTestJava

可能会报错
在这里插入图片描述
将这个警告忽视再重新执行一次

@SuppressWarnings(“deprecation”)
public static Publisher<?> invokeSuspendingFunction(Method method, Object target, Object... args) { KFunction<?> function = Objects.requireNonNull(ReflectJvmMapping.getKotlinFunction(method));
if (m…

当预编译完成后就可以用idea打开项目了,因为要下载各种依赖,所以第一次打开项目会很慢。

5、验证

新建module
在这里插入图片描述
引入想要的模块
在这里插入图片描述
编写测试程序运行
在这里插入图片描述

6、可能遇到的报错

6.1、jdk.jfr不存在

在这里插入图片描述
这是因为jdk11及以后的jdk版本才有这个包。指定jdk版本即可
file->project structure
在这里插入图片描述
file->settings
在这里插入图片描述
如果是build and run using: InteIIiJ IDEA 记得把java compiler的jdk版本也指定一下
在这里插入图片描述

6.2、checkstyleMain

在这里插入图片描述
将checkstyleMain文件的内容注释或者删了即可
在这里插入图片描述

6.3、org.gradle.api.artifacts.result.ComponentSelectionReason.getDescription()Ljava/lang/String

这是IDEA不兼容对应的gradle版本。尝试升级idea版本或者降低gradle版本即可。

6.4、其他

有时候出现一些奇奇怪怪的问题。可以试试clean后再重新build
在这里插入图片描述
或者Invalidate Caches
在这里插入图片描述

http://www.lryc.cn/news/22761.html

相关文章:

  • 防盗链是什么?带你了解什么是防盗链
  • Linux基础命令-fdisk管理磁盘分区表
  • (四)K8S 安装 Nginx Ingress Controller
  • 高频面试题
  • js 字节数组操作,TCP协议组装
  • JavaScript的引入并执行-包含动态引入与静态引入
  • 第四阶段01-酷鲨商城项目准备
  • Uncaught ReferenceError: jQuery is not defined
  • 面试阿里测开岗,被面试官针对,当场翻脸,把我的简历还给我,疑似被拉黑...
  • 2. 驱动开发--驱动开发环境搭建
  • 《数据库系统概论》学习笔记——第四章 数据库安全
  • 山洪径流过程模拟及洪水危险性评价
  • LeetCode HOT100 (23、32、33)
  • 电力监控仪表主要分类
  • 山野户外定位依赖GPS或者卫星电话就能完成么?
  • SAP 应收应付重组配置
  • 算法练习(八)计数质数(素数)
  • 用反射模拟IOC模拟getBean
  • 【Ap AutoSAR入门与实战开发02】-【Ap_s2s模块01】: s2s的背景
  • C语言数据结构(3)----无头单向非循环链表
  • Android 实现菜单拖拽排序
  • 通过window.open打开新的页面并修改样式添加内容
  • Java中 Synchronized 的用法
  • Rust语言的基本介绍
  • 新冠小阳人症状记录
  • SQL零基础入门学习(十四)
  • Excel工作表不能移动或复制?看看是不是这两个原因
  • 利用递归实现括号匹配
  • 14.线程数量怎么制定?
  • C++中STL标准模板库学习记录