1.在Windows上安装Gradle

gradle工具类似于maven,用于项目的构建,此处主要用于构建spring源码,以便我们将spring源码导入eclipse。

  • 开发环境

  1. Java:JDK8(必须是JDK或JRE7以上,使用java -version查看当前电脑java版本)
  2. 操作系统:Windows
  • 安装步骤

  1. 下载最新的Gradle压缩包:Gradle官网:https://gradle.org/,当前最新版本下载地址:https://gradle.org/releases/,下载binary-only即可。
  2. 解压下载的压缩包到指定位置,比如:C:\Gradle\gradle-4.3.1
  3. 配置环境变量:右键计算机->属性->高级系统设置->环境变量,在系统变量区域,点击新建,输入变量名为:GRADLE_HOME,变量值为:D:\Software\Gradle\gradle-4.3.1(根据实际情况)。找到Path,在原始内容基础上加入%GRADLE_HOME%\bin;,必须以分号结束
  4. 测试配置是否成功

       打开一个新的cmd命令窗口或者powershell或者其他命令行工具(比如cmder),输入命令gradle -v,如果出现类似下面的消息,则说明配置成功。

2.Spring源码下载及安装

  • 源码下载方式

  1. 直接根据本博客提供的网址,自行下载需要的spring源码版本,地址 https://github.com/spring-projects/spring-framework/tags,本博客推荐此方式,简单粗暴;
  2. 使用GitHub从git上自行拉取 ,此方式适合喜欢git代码管理或者愿意学习git知识的人员。具体方式可参考:https://blog.csdn.net/u013030488/article/details/79837365。
  • 代码构建

    拉取的Spring源码并不能直接导入eclipse中,需要通过gradle构建才能导入,以spring-tx模块为例,具体步骤如下:

1.从命令行进入到spring-tx文件夹下,运行gradle cleanIdea eclips命令,等待运行结束,当出现"success",表示构建完成;

                 

        构建完成后目录变化:

        

2.构建完毕后,将项目spring-tx进行导入到Eclipse中(普通web项目导入流程);

3. 导入后,显示为红色!号,右击项目选择Build Path -->configure  Build Path,可以看到project下的项目缺失,此时需要将这些项目也像Spring-tx一样进行构建,下面                          的截图是已经处理完毕错误截的图片,

        

想说明的是:这个项目依赖下面几个spring-项目,所以也需要依次导入。

3.其他问题解决

  • Spring源码构建项目,导入eclipse后,缺失spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar的解决办法:

  在导入ide之后,发现有spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar不存在,在spring-framework目录下执行gradle objenesisRepackJar和gradle cglibRepackJar命令,会在Spring-framework\spring-core\build\libs目录下生成jar包。

  

  • 导入eclipse的过程中发现spring-oxm缺少castor和jax

查看spring-oxm下的spring-oxm.gradle文件后,发现可以在spring-oxm项目目录下执行下面两个命令:

      1.gradle genCastor

      2.gradle genJaxb

      

      控制台出现这个代码表示成功,然后在spring-oxm的根目录下会出现build文件夹,如下图

      

      然后将eclipse中的spring-oxm项目删除,再重新导入spring-oxm项目后就不报错了

  • spring源码gradle获得eclipse工程时,spring-beans-groovy项目GroovyDynamicElementReader报错解决

    安装一个eclipse的groovy插件,在eclipse的 Help -> Install New Software 中,添加groovy的下载连接:http://dist.springsource.org/milestone/GRECLIPSE/e4.8/,然后全  选后,开始下载,下载完后,重启eclipse,然后clean一下项目就搞定了。

              注意groovy插件版本需要根据eclipse的版本而不同。进入 https://github.com/groovy/groovy-eclipse/wiki查找和自己eclipse对应版本的groovy,详细介绍见博客  https://blog.csdn.net/qq_27645299/article/details/72900801

  • 结语

根据博客内容基本就完成了Spring源码环境的搭建,后面就可以学习源码了。

Spring源码分析——源码分析环境搭建的更多相关文章

  1. Zookeeper 源码学习(一)环境搭建

    前言 最近准备学习 Zookeeper,想从 Zookeeper 开始逐步深入了解各类中间件,学习分布式计算. 下载源码 执行指令,下载代码: git clone https://github.com ...

  2. spring+springMVC+mybatis的框架项目基础环境搭建

    上一个项目在后台用到spring+springMVC+mybatis的框架,先新项目初步需求也已经下来,不出意外的话,应该也是用这个框架组合. 虽然在之前activiti相关的学习中所用到的框架也是这 ...

  3. Mybatis3源码笔记(一)环境搭建

    1. 源码下载 地址:https://github.com/mybatis/mybatis-3.git. 国内访问有时确实有点慢,像我就直接先fork.然后从git上同步到国内的gitte上,然后在i ...

  4. ELK日志分析平台系统windows环境搭建和基本使用

    ELK(ElasticSearch, Logstash, Kibana),三者组合在一起就可以搭建实时的日志分析平台啦! Logstash主要用来收集.过滤日志信息并将其存储,所以主要用来提供信息. ...

  5. ELK日志分析系统(1)-基本环境搭建

    1. 概述 ELK = Elasticsearch + Logstash + Kibana Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大功能:是一套开放REST和J ...

  6. ELK日志分析平台系统CentOS7环境搭建和基本使用

    一.搭建环境 系统环境:CentOS7 安装iptables:https://blog.csdn.net/momo_mutou/article/details/81739155 jdk1.8:  ht ...

  7. 【JavaScript】赛码网前端笔试本地环境搭建

    参考:https://hoofoo.me/article/2017-04-11/%E8%B5%9B%E7%A0%81%E7%BD%91%E5%89%8D%E7%AB%AF%E7%AC%94%E8%AF ...

  8. Spring+SpringMVC+Mybatis+MAVEN+Eclipse+项目完整环境搭建

    1.新建一个Maven项目,创建父项目. 2.创建子项目模块 3.创建javaWeb项目 4.创建后的项目目录结构 5.Maven文件配置 parent父项目pom.xml文件配置 <?xml ...

  9. spring入门(五)【springMVC环境搭建】

    springMVC作为spring的一个WEB组件,是一个MVC的思想,减少了WEB开发的难度,现介绍springMVC环境的搭建,具体的原理放在后面介绍.用过框架的朋友都知道要在WEB项目中使用一个 ...

  10. spring中的springSecurity安全框架的环境搭建

    首先在web.xml文件中配置监听器和过滤器 <!--监听器 加载安全框架的核心配置文件到spring容器中--> <context-param> <param-name ...

随机推荐

  1. Linux下RabbitMQ的安装 开机自启动

    1.官网下载地址 下载 RabbitMQ 和 erlang.我下载的是rabbitmq-server-3.6.10-1.el7.noarch.rpm和erlang-19.0.4-1.el7.cento ...

  2. [硬件]_ELVE_STLINK下载出现nternal command error问题

    我之前也出现过这个这个,然后折腾一晚上,升级什么都都不好使 最后我换了一根短的线,回归正常!!!

  3. car的旅行路线

    https://www.luogu.org/problemnew/show/P1027 题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个矩形 ...

  4. c语言题库---- 函数

    ---恢复内容开始--- 1.编写一个函数,功能为返回两个int类型参数的最大的值 #include <stdio.h>int FindMax( int a, int b); int ma ...

  5. java虚拟机的学习书籍推荐

    javaEE开发已然是一个老生常谈的话题了,但经典之所以会成为经典,就是因为有可重复琢磨之处,每一次的反复推敲都会有不一样的收获.如果你不满足于做一个只会写if…else…的Java程序员,而是希望更 ...

  6. 后台管理系统好用的UI框架

    https://www.layui.com/demo/form.html

  7. 面试题-Python高级

    元类 Python 中类方法.类实例方法.静态方法有何区别? 类方法:是类对象的方法,在定义时需要在上方使用“@classmethod”进行装饰,形参为cls, 表示类对象,类对象和实例对象都可调用: ...

  8. .Net Core 没有 WebForm 是 历史 的 退步, MVC 是一个 糟糕 的 设计

    WebForm 自面世以来,  广受广大开发人员的欢迎 . 当然, WebForm 有一些 著名的 弊病,  比如 笨重的 ViewState . 不过 我们 可以 用 一些 更加 先进 和 灵巧 的 ...

  9. Git-命令行-删除本地和远程分支

    命令行方式 Git Bash: 切换到要操作的项目文件夹 命令行 : $ cd <ProjectPath> 查看项目的分支们(包括本地和远程) 命令行 : $ git branch -a ...

  10. ELK实践-Kibana定制化扩展

    纵观任何一家大数据平台的技术架构,总少不了ElasticSearch:ES作为溶合了后端存储.快速检索.OLAP分析等功能的一套开源组件,更绝的是提供了一套集数据采集与前端展现为一体的框架(即ELK) ...