spring-framework-5.1.x 源码编译 环境搭建 [ idea:2020.1 ]
spring-framework-5.1.x 源码编译 环境搭建 [ idea:2020.1 ]
一. Gradle下载与安装
软件名称 | 版本 | 下载地址 |
---|---|---|
jdk | jdk 11.0.5 | 下载链接 提取码:qwpe |
spring-framework | 5.1.x | 下载链接 提取码:diq2 |
gradle | 5.6.3 | 下载链接 提取码:pgkc |
idea | 2020.1/2020.3 | 下载链接 提取码:5555 |
二. Spring和Gradle
2.1 官网下载spring源码
GitHub 搜索springframework 版本号 5.1.x
官网下载: spring-projects / spring-framework 的 github地址
2.2 下载配置gradle
我们选择想要安装的发布版本,gradle-x.x-bin.zip是需要下载的安装发布版,gradle-x.x-src.zip是源码,gradle-x.x-all.zip则是下载全部的文件。 我选择下载gradle-5.6.3-bin.zip。
安装Gradle
Gradle下载的源码不需要安装,我们将下载的压缩包在本机的目录下直接解压即可,解压后的目录如下图所示。
配置Gradle环境变量
右键“这台电脑”–>“属性”–>“高级系统设置”–>“环境变量”–>“系统变量”,我们在系统变量中新增一个GRADLE_HOME值为解压后的路径,然后我们还需要修改Path变量,将Gradle的bin目录添加进去,我们在Path变量的最后面添加;%GRADLE_HOME%\bin,注意前面的分号(;)一定不能少。
验证Gradle是否安装成功
配置完成后我们查看一下本机安装的gradle的版本信息,
使用快捷键Win+R弹出的输入框中输入cmd,然后打开命令窗口,
在命令窗口中输入gradle -v 或 gradle -version 可以查看到gradle的版本信息
三. idea导入spring源码
3.1 导入源码
如果当前的版本是: idea 版本2020.1 ,操作步骤如下
注意:gradle开始进行源码项目构建的时候,会自动下载默认gradle版本进行项目构建,此时,强制结束下载进程
如果当前的版本是: idea 版本2020.3 ,操作步骤如下
注意:gradle开始进行源码项目构建的时候,会自动下载默认gradle版本进行项目构建,此时,强制结束下载进程
3.2 更改gradle的仓库源为阿里源,这样下载构建速度更快
build.gradle
repositories {
maven { url “https://maven.aliyun.com/repository/spring-plugin” }
maven { url “https://maven.aliyun.com/nexus/content/repositories/spring-plugin” }
maven { url “https://repo.spring.io/plugins-release” }
}
repositories {
maven { url “https://maven.aliyun.com/repository/central” }
maven { url “https://repo.spring.io/libs-release” }
mavenLocal()
}
3.3 idea中的gradle设置
注意:
run tests using 设置成idea的gradle user home : 可以任意选择一个本地磁盘的位置
3.4 设置完毕后,刷新gradle,让其重新构建源码
四. 编译⼯程
顺序:
core ⼯程 —>tasks —>other —>compileTestJavaoxm ⼯程 —>tasks —>other —>compileTestJavacontext ⼯程 —>tasks —>other —>compileTestJavabeans ⼯程 —>tasks —>other —>compileTestJavaaspects ⼯程 —>tasks —>other —>compileTestJavaaop ⼯程 —>tasks —>other —>compileTestJava
4.1 core
4.2 oxm
4.3 context
4.4 beans
4.5 aspects
4.6 aop
五. 创建项目
5.1 在项目上右击新建model
在当前项目中添加spring-context依赖
创建测试类
编写配置文件
编写测试类
运行:报错问题1
5.2 问题处理
问题1:Kotlin: Language version 1.1 is no longer supported; please, use version 1.2 or greater.
解决:core/oxm/context/beans/aspects/aop/spring-dabing
上述模块全部都需要设置Kotlin版本大于1.1
重新运行测试类:问题2
G:\spring-framework-5.1.x\spring-context\src\main\java\org\springframework\context\weaving\DefaultContextLoadTimeWeaver.java:26:38
java: 找不到符号符号: 类 InstrumentationSavingAgent位置: 程序包 org.springframework.instrument
问题2:
解决:
步骤1:
编辑spring-context模块的spring-context.gradle
将optional更新为compile
步骤2:
重新编译spring-context模块
5.3 再次运行项目,测试成功
spring-framework-5.1.x 源码编译 环境搭建 [ idea:2020.1 ]相关推荐
- Android源码编译环境搭建教程 (一) - Ubuntu系统构建
Android源码编译环境搭建教程 (一) - Ubuntu系统构建 本教程为感兴趣的同学提供Android源码编译的环境搭建,当然这里都是基于windows系统,mac系统也差不多,将相应的软件替换 ...
- 安卓编译安装python_安卓源码编译环境搭建
本编译环境以 Ubuntu 14.04 系统为例 修改软件源(可选) 安装相关依赖 安装Android编译工具JDK 一. 修改软件源(可选) : sudo gedit /etc/apt/source ...
- netty源码编译环境搭建
最近在看websocket的东西,正好netty中有讲到websocket,所以把netty源码拿来看一下.该文章就是本人在搭建netty源码编译环境的一些收获和感悟.望各位指正!不甚感激.在这里顺便 ...
- Android系统源码编译环境搭建(清华镜像,想编译什么版本都可以,只是有JDK和make的版本要求)
上一次,写得有点匆忙,现在补上清华镜像源码的详细下载方法. 编译Android 5.1源代码并烧录到Nexus4(用的是清华镜像的源) 环境准备: 基本环境:ubuntu-14.04-desktop- ...
- Android 源码编译环境搭建
编译环境的搭建主要分为两个大步骤,在此做以记录 1.基础环境的准备 磁盘:需要6GB 以上(为以后可能会有新版本留了空间) Linux系统:Ubuntu6.06以上 2.工具的准备 Java环境:JD ...
- android mtk环境,Ubuntu 14.04 搭建MTK Android源码编译环境搭建
安装必备的工具: BuildEnvironment Requirement ============================================================= ...
- 迅为IMX6开发板非设备树源码编译环境搭建(一)
本小节适用 ITOP-IMX6Q(商业级 2G+16G),ITOP-IMX6Q(工业级 1G+8G), ITOP-IMX6D(商业级 1G+8G) 内核版本为 3.0.35 的系统编译. 13.1 编 ...
- 搭建Flutter Engine源码编译环境
文章目录 资料 编译环境 一些命令 查看项目中用到的flutter环境 出现的问题 GOMA usage was specified but can't be found, falling back ...
- Spring Boot 2.0系列文章(四):Spring Boot 2.0 源码阅读环境搭建
前提 前几天面试的时候,被问过 Spring Boot 的自动配置源码怎么实现的,没看过源码的我只能投降��了. 这不,赶紧来补补了,所以才有了这篇文章的出现,Spring Boot 2. 0 源码阅 ...
最新文章
- 梅尔频率倒谱系数(MFCC)资源
- 炉石传说服务器维护有补偿吗,炉石传说官网维护补偿什么时候到 未到原因说明...
- animate中使用HTML5,animate.css怎么使用?
- 【代码实现接口测试】Requests库
- 最小二乘法C#实现,简单代码
- openshift_OpenShift上的Java EE工作流(技术提示#64)
- Google Analytics 搜索引擎来源
- 南工大计算机学院,江南-欢迎访问湖北工业大学计算机学院官方网站
- pandas 读取所有表头_像用excel一样用pandas
- Docker 的4种网络模式
- 且看嘉兴如何“化云为雨”
- ORACLE的程序包1-程序包的基
- SEO优化中的div+css命名规则
- 如何给Arduino项目添加音乐播放功能
- 计算机屏幕坐标系转换,测量坐标系到计算机屏幕坐标系的换算
- python读取lmdb文件_LMDB 的 Python 接口使用方法
- JAVA方法重载优先级
- 关于电路中输入阻抗和输出阻抗大小的讨论
- K-means聚类攻击类型
- Codeforces - Serval and Rooted Tree
热门文章
- VBS教程:函数-FormatPercent 函数
- ipvsadm命令及lvs-nat类型web服务器集群
- Tengine(Nginx)动静分离简要配置
- Linux apache编译安装
- mod_rewrite
- 原生js-Ajax jq-Ajax集结
- [WinAPI] API 14 [获取、设置文件属性和时间]
- iOS oc 线程 进程,同步异步,并发串行,来捋捋
- Elasticsearch——利用Parent-Child关系解决大数据场景下的实时查询
- BizTalkServer 如何发送 EDI 消息(3)