使用idea和gradle编译spring5源码的方法步骤

写在前面:spring 应该对于每个从事java开发的大兄弟们来说应该都不陌生的,作为一个从业两年多的小开发仔,个人觉得,每天都在面对spring,确从来没有编译过spring源码,有点不太合适。最近在研究spring源码的时候,突然想起编译一下spring源码,网上应该也有很多大神编译过spring源码,在这里我把我再编译过程的遇到的坑,来跟大家分享下。

版本工具:spring5.0.x,gradle4,9,jdk1.8_131,kotlin1.2.51,groovy2.4.15,IntelliJ IDEA 2018-2

详细步骤及坑见下:

1,下载gradle,可以去官网下载,gradle版本需要4.2以上,小编这里选择的是gradle4.9版本。

gradle下载地址:https://services.gradle.org/distributions/

gradle下载时候有三个包,gradle-src为gralde源码,gradle-bin为安装包,gradle-all为源码加安装包,我们这里只需下载安装文件即可。

2,配置gradle

gradle下载后不需要安装,解压再本地磁盘后配置环境变量即可

1),配置gradle环境变量

新建GRADLE_HOME,path中增加%GRADLE_HOME%/bin;即可

配置完成以后win+r,输入cmd进入dos界面,键入命令gradle -v,若如下图正确输出版本信息即可

2),配置gradle默认的本地仓库,gradle和maven类似,工作时也需要一个本地仓库,管理工程jar包,可做如下配置,新增GRADLE_USER_HOME,路径配置成需要的本地仓库路径即可。

3,下载spring5源码(这里我们直接从全球最大的同性交友平台github上下载就可以了),进入github官网,直接搜索spring

这里可能有很多同志上传的spring源码,这里我们直接找官方版本

进去之后会看到一个master版本,我们,同时也包含很多spring的历史分支版本,这里我们直接选择5.0.x版本

我们直接下载zip到本地磁盘即可

源码下载地址:https://github.com/spring-projects/spring-framework

4,讲spring5源码导入idea进行构建

编译spring5源码有很多方式,可以直接通过gradle命令编译,不过这种编译方式比较麻烦,出现错误也不太好排查,回头可专门写一个文介绍下使用gradle命令编译spring源码。

这里我们选择直接通过代码编辑工具来编译spring5源码,可以用eclipse或者idea等等,这里我个人推荐使用idea编译。

1)将源码导入idea,idea怎么导入工程就不一一细说了,没使用过idea的大兄弟,可以恶补一下idea使用手册:file-open选到对应项目即可(先将源码解压到idea工作空间中去)

2),导入前先注意下工程下的这几个文件,为导入eclipse和idea前需要注意的地方

我们点开import-into-idea.md文件

注意几点:

a,因为其他项目需要依赖spring-core和spring-oxm,所以我们导入后需要先编译这两个包

b,spring-aspects需要依赖三方jar(精通aop的应该知道spring-aop和aspectj的关系,在使用注解方式实现spring-aop的时候,需要导入aspectj的jar,有兴趣的可以去查阅下官方文档aop相关文档),这里编译可能会报错,不影响我们编译使用,我们先不处理

c,使用工具编译时,可能会出现内存溢出情况,这里我们编译时需要增加相关参数

-XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m

3),以上工作完成之后,我们可以开始导入编辑编译配置了,如下图(需要注意的地方已在图中标注)

注意-注意-注意:小编曾经猜过的坑,jdk版本,不能太高,我曾经使用jdk1.8_20和jdk1.8_191编译,均会出现版本问题,我后来采用的是,jdk1.8_131版本,即可成功

4),编译过程中会出现一些错误,常见如下

a),jdk版本错误(如前所说,换成对应版本即可)

b),出现如下错误,点击open file,将框中内容注释即可

如上做完后,等着build完了即可,全称需要下载gradle仓库jar包,需要时间比较长,拼机器性能和网速的时候到了,兄弟们加油。

5,当项目构建完成之后,便可开始编译,编译很简单,直接在moudle中run test all即可

如果出现依赖报错,如下执行命令,即可下载相应jar包

如下执行完了后,编译moudle即可,如此依次编译spring-oxm,spring-context,spring-bean即可

6,使用刚刚编译的spring源码构建spring项目,在工程目录下,新建moudle,引入对应的依赖即可

项目构建完成,正确输出。至此,spring5.0.x项目构建编译完成。大功告成!

到此这篇关于详解使用idea和gradle编译spring5源码的文章就介绍到这了,更多相关idea和gradle编译spring5内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解SpringBoot获得Maven-pom中版本号和编译时间戳

    这篇文章首先介绍了在SpringBoot中如何获得项目的编译时间和版本号,并向外提供接口,然后介绍了介绍了新版maven获得时间戳时区错误的解决方案,最后介绍了把时间戳加到包名的两种方法. SpringBoot项目获得编译时间戳和版本号,然后提供接口大概分为以下步骤: 在pom文件中获取maven的编译时间戳 配置pom,用maven中的属性渲染资源文件application.yml 提供接口 Maven中获得编译时间 在 pom文件properties 中添加两个属性 <properties>

  • 如何使用Jenkins编译并打包SpringCloud微服务目录

    这篇文章主要介绍了如何使用Jenkins编译并打包SpringCloud微服务目录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 意义说明: 使用Jenkins从Gogs拉取SpringCloud微服务,拉取的是整个仓库的内容,分好多个模块文件夹,但是使用maven编译打包的话只编译打包指定的模块文件夹 Gogs Webhook: 参数化构建过程: 选项参数:输入变量名 选项:输入变量值 描述:简要描述变量信息 若没有Gogs Webhook,

  • Spring实现源码下载编译及导入IDEA过程图解

    一.环境准备 idea版本:IntelliJ IDEA 2019.3.4 gradle版本:gradle-4.10.3 jdk版本:jdk-8u251-windows-x64.exe(1.8.0_251) Spring源码版本:spring-framework-5.1.x 说明:该套spring源码编译导入的环境是本人经过三天的不断调试更改后能够成功编译导入的一套环境,在首次编译成功后又进行了多次的重试均可一次编译成功.如环境与上述不一致,下面的步骤不保证spring源码能编译并导入IDEA百分

  • spring源码下载、编译、debug的详细教程

    零.资源准备及环境配置 记安装时间:2020.02.20 环境准备: 1.idea2019.3.3旗舰版,免费试用30天版本 2.gradle5.6版本 3.jdk1.8.0_202 4.spring源码. spring源码下载链接:https://github.com/spring-projects/spring-framework gradle安装及下载链接:https://gradle.org/install/#helpful-information idea2.019.3.3下载链接:h

  • 使用idea和gradle编译spring5源码的方法步骤

    写在前面:spring 应该对于每个从事java开发的大兄弟们来说应该都不陌生的,作为一个从业两年多的小开发仔,个人觉得,每天都在面对spring,确从来没有编译过spring源码,有点不太合适.最近在研究spring源码的时候,突然想起编译一下spring源码,网上应该也有很多大神编译过spring源码,在这里我把我再编译过程的遇到的坑,来跟大家分享下. 版本工具:spring5.0.x,gradle4,9,jdk1.8_131,kotlin1.2.51,groovy2.4.15,Intell

  • 教你编译pjsip源码的方法

    操作系统 : Windows 10_x64 [版本 10.0.19042.685] pjsip版本 : 2.10 pjsip官网:https://www.pjsip.org/ 1. 下载pjsip源代码 直接从pjsip官网给的github地址下载 https://github.com/pjsip/pjproject/archive/2.10.tar.gz 2. 使用VS2015编译 双击pjproject-vs14.sln 为了防止编译报错,首先进入这个目录: pjproject-2.10\p

  • 修改并编译golang源码的操作步骤

    最近为了做Hyperledger Fabric国密改造,涉及到了golang源码的改动.特将操作过程整理如下,以供参考: golang的源码安装其实比较简单,只需运行源码包中的脚本src/all.bash,等到出现类似以下字样就安装好了: Installed Go for linux/amd64 in xxx(目录地址) Installed commands in xxx(目录地址) 但是在源码安装1.5版本以上的go时会报以下的错误 : ##### Building Go bootstrap

  • 使用idea+gradle编译spring5.x.x源码分析

    目录 一.编译环境 二.安装gradle 1.下载 2.配置 2.1.gradle下载后不需要安装,直接解压到磁盘 2.2.配置gradle环境变量 2.3.配置gradle默认的本地仓库 2.4.检查是否安装成功 三.下载spring源码 1.进入github官网,直接搜索spring 2.选择spring官方源码 3.选择版本5.x.x 4.下载zip压缩包 5.解压 四.编译spring5源码 1.将项目导入idea中 2.编译配置 五.测试spring是否编译成功 1.新建一个modul

  • IDEA2020.1构建Spring5.2.x源码的方法

    内容概览 使用IDEA2020.1构建Spring5.2.x源码 环境 源码:spring5.2.xjdk11.08idea2020.1 spring spring5.2.x源码下载地址 gradle 下载 查看spring使用的gradle版本,这里要记得将distributionUrl指向本地的gradle包,不然还是会去下载的. distributionUrl=file:///H:/download/gradle-5.6.4-bin.zip gradle下载地址 安装 window下,配置

  • windows下使用 intellij idea 编译 kafka 源码环境

    1. 从 GitHub 网站,git clone kafka 源码 2. 下载安装好 gradle,scala 2.1 从 dependencies.gradle 文件中找到 gradle 的版本,然后下载指定版本,并配置好 GRADLE_HOME 环境变量 3. 进入 kafka 项目目录,依次执行 gradle wrapper,gradle idea,gradle build --exclude-task test 4. 将工程导入到 idea 4.1 启动主类 kafka.Kafka 4.

  • Gradle 依赖切换源码实践示例详解

    目录 引言 1.一般的修改办法 2.通过 Gradle 脚本动态修改依赖 2.1 配置文件和工作流程抽象 2.2 为项目动态添加子工程 2.3 使用子工程替换依赖 2.4 注意事项 总结 引言 最近,因为开发的时候经改动依赖的库,所以,我想对 Gradle 脚本做一个调整,用来动态地将依赖替换为源码.这里以 android-mvvm-and-architecture 这个工程为例.该工程以依赖的形式引用了我的另一个工程 AndroidUtils.在之前,当我需要对 AndroidUtils 这个

  • C# 两种方式反编译修改源码(dnspy,ildasm & ilasm)

    一:背景 1. 讲故事 周五下午运营反馈了一个紧急bug,说客户那边一个信息列表打不开,急需解决,附带的日志文件也发过来了,看了下日志大概是这样的: 日期:2020-11-13 12:25:45,923 线程ID:[3924] 日志级别:INFO 错误类:xxx property:[(null)] - 错误描述:应用程序出现了未捕获的异常,Message:该字符串未被识别为有效的 DateTime.; StackTrace: 在 System.DateTimeParse.Parse(String

  • Vue3 编译流程-源码解析

    前言: Vue3 发布已经很长一段时间了,最近也有机会在公司项目中用上了 Vue3 + TypeScript + Vite 的技术栈,所以闲暇之余抽空也在抽空阅读 Vue3 的源码.本着好记性不如烂笔头的想法,在阅读源码时顺便记录了一些笔记,也希望能争取写一些源码阅读笔记,帮助每个想看源码但可能存在困难的同学减少理解成本. Vue2.x 的源码我也有过一些简单的阅读,自 Vue3 重构后,Vue 项目的目录结构也发生了很大的变化,各个功能模块被分别放入了 packages 目录下,职责更加清晰,

  • pycharm导入源码的具体步骤

    pycharm导入源码的方法: 1.打开pycharm,依次点击File.Settings选项: 2.点击打开Project Structure选项: 3.点击Add Content Root选项,根据需要添加源码文件路径即可. 具体方法: 首先选中File选项卡,点击Settings选项: 然后点击Project Structure选项: 最后添加想要导入的文件路径即可. 内容扩展: Pycharm 导入其他文件夹源码的2种方法 在pycharm中,当调用( import / from - i

随机推荐