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

Spring源码编译-for mac

超详细的spring源码编译
记:编译成功时间:2023.08.19
环境准备:
1.idea 2023.1.1 Community Edition
2.jdk1.8
3.gradlegradle-5.6.4
4.spring源码(版本:spring-framework-v5.2.25.RELEASE)

一.spring源码下载

github 加速网站,速度快,有条件的可以去github下载。

https://gitcode.net/mirrors/spring-projects/spring-framework?utm_source=csdn_github_accelerator

在这里插入图片描述

在这里插入图片描述

二、gradle的安装

(说明:将源码包解压以后,gradleWraper中的gradle可以远程下载gradle,也就是在spring-framework-5.2.12.RELEASE\gradle\wrapper\gradle-wrapper.properties有相应的体现。但是我没有使用远程下载,因为自己尝试了好几次,都会失败,所以自己在本地安装了一个gradle。上教程。)

gradle的下载
选择版本很重要,千万不要随意去选择一个版本,要不然后面可能会出很多的问题。版本参考spring-framework-v5.2.25.RELEASE\gradle\wrapper\gradle-wrapper.properties文件中的相应版本,如下图:

在这里插入图片描述

gradle下载链接:

https://gradle.org/releases/

(选择对应的binary-only版本就行)

在这里插入图片描述

gradle配置参考:

https://www.cnblogs.com/vitoboy/p/12487648.html

三.修改spring源码中的一些地方

1.因为我们自己配置了gradle,所以需要修改gradle\wrapper\gradle-wrapper.properties文件内容,让它使用我们自己配置的gradle,要不然它还是会去远程下载。
原文件是这样:

在这里插入图片描述
将distributionUrl修改成我们自己的gradle压缩包路径,如下图:

distributionUrl=file\:///Users/eistert/Documents/do_not_delete/gradle-5.6.4-bin.zip

2.同样在build.gradle文件中找到repositories部分,添加阿里云镜像,这样编译会更快,如下图:
在这里插入图片描述

maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven { url "http://repo.springsource.org/plugins-release" }

3.找到settings.gradle文件并打开,同样找到找到repositories部分,添加下面代码

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

在这里插入图片描述

五.将源码导入idea

1.直接使用idea打开源码那个文件夹就行
2.如果导入进去后就开始编译了,就需要暂停编译,需要修改一些配置,要不然他还是会去远程下载gradle,我们自己本地的就无效。

在这里插入图片描述
对这个配置有个比较重要的地方说明一下:Build and run using 和 Run tests using这两个选项不要使用默认的,选择idea来进行编译会快很多(我测试过了,快了不是一点点,是很多)

3.然后就可以点击下方的build开始编译了,如下图
在这里插入图片描述
最后如果全是绿勾勾说明编译成功。

六.测试

创建测试gradle module.

在这里插入图片描述

在这里插入图片描述

package com.eistert.spring.test;import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@Configuration
@ComponentScan("com.eistert.spring.test")
public class EistertSpringTestApplication {public static void main(String[] args) {ApplicationContext context = new AnnotationConfigApplicationContext(EistertSpringTestApplication.class);UserServiceImpl bean = context.getBean(UserServiceImpl.class);bean.sayHello();}
}
package com.eistert.spring.test;import org.springframework.stereotype.Service;@Service
public class UserServiceImpl {public void sayHello() {System.out.println("你好呀spring!");}
}

理论上应该出现

在这里插入图片描述

但实际出现的是

在这里插入图片描述
在这里插入图片描述

百度了一下是 Kotlin 版本过低的问题,于是升了一下Kotlin版本

在这里插入图片描述
还是老样子,先这样吧。将就着看吧,问题真多。。。。。

参考文章

spring源码编译(spring,gradle,idea)
https://blog.csdn.net/qq_45750556/article/details/113244361

Spring 源码阅读环境的搭建
https://zhuanlan.zhihu.com/p/315023187

mac环境安装Gradle及配置
https://www.cnblogs.com/vitoboy/p/12487648.html

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

相关文章:

  • 视频汇聚平台EasyCVR安防监控视频汇聚平台的FLV视频流在VLC中无法播放的问题解决方案
  • 中间件:RocketMQ安装部署
  • leetcode-动态规划-42-接雨水
  • [静态时序分析简明教程(十一)]浅议tcl语言
  • 大数据-玩转数据-Flink 网站UV统计
  • 3分钟了解下cwnd和TCP拥塞控制算法
  • 设计模式之状态模式(State)的C++实现
  • 无涯教程-TensorFlow - Keras
  • 使用SSH隧道将Ubuntu云服务器Jupyter Notebook端口映射到本地
  • Keepalived+LVS部署高可用集群
  • 2023河南萌新联赛第(五)场:郑州轻工业大学
  • 在Orangepi5开发板3588s使用opencv获取摄像头画面
  • 音视频 ffmpeg命令分类查询
  • VSCode无法从Extensions下载工具时,把工具下载到本地并添加到VSCode编辑器
  • WebStrom 前端项目Debug
  • 【ARM Linux 系统稳定性分析入门及渐进12 -- GDB内存查看命令 “x“(examine)】
  • kube-prometheus 系列1 项目介绍
  • 深度学习在组织病理学图像分析中的应用: Python实现和代码解析
  • kotlin的列表
  • PCL 三维点云边界提取(C++详细过程版)
  • ../../ 目录遍历
  • clickhouse集群部署
  • centos8 使用phpstudy安装tomcat部署web项目
  • 爬虫百度返回“百度安全验证”终极解决方案
  • visual studio 2022配置
  • B-树和B+树的区别
  • c注册cpp回调函数
  • 批量将excel中字段为“八百”替换成“九百”
  • 关于docker-compose up -d在文件下无法运行的原因以及解决方法
  • 机器学习笔记 - 基于keras + 小型Xception网络进行图像分类