zoukankan      html  css  js  c++  java
  • Spring源码的编译、下载和阅读

    原文出处: 分享牛

    想对spring框架进行深入的学习一下,看看源代码,提升和沉淀下自己,工欲善其事必先利其器,还是先搭建环境吧。

    环境搭建

    sping源码之前是svn管理,现在已经迁移到了github中了,新版本基于gradle构建项目。所以构建sping源码环境必须先安装github以及Gradle.
    当然了如果不想安装github客户端可以直接去git下载项目:spring中git地址https://github.com/spring-projects/spring-framework

    安装github

    首先去github官网下载安装包,我用的window环境下载地址:https://desktop.github.com/下载之后双击安装即可,操作比较傻瓜式。
     

    安装Gradle

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
    面向Java应用为主。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。下载地址:http://gradle.org/gradle-download/,下载之后将文件解压配置环境变量如下图所示:
    1. 添加GRADLE_HOME F:gradle-allgradle-1.6根据自己的文件目录配置。
    2. 添加变量到path中。(这个不用说添加很简单吧)
    Gradle目录结构如下图所示:
     
    测试是否安装成功:
    win+R 进入cmd模式输入命令:gradle -version如果安装成功 出现下图gradle 版本信息:

    下载spring(如果没有安装github客户端可以按照下面的github地址直接下载即可)

    spring git地址为:https://github.com/spring-projects/spring-framework可以直接下载下来防止命令clone比较慢。如下图所示:
     
    打开github或者直接进入gitsehll命名 我的建立在I盘springok文件中
    进入springok文件 右键 git bash打开git命名行如下图: 
    输入命令:git clone https://github.com/spring-projects/spring-framework 如下图所示:
     
    耐心等待吧,比较慢。。
    下载完成之后命令界面如下图所示:
    下载完成之后 看下下载的目录吧:
    ok了,但是默认的这种方式并不是eclipse项目,我们还需要将源码转化为eclipse项目。编译的时候比较慢,因为项目需要的jar包可能需要从网络下载。(我第一次下载编译了4个小时最终搞定)最好能翻墙防止下载不下来。怎么编译呢,进入下载的目录打开cmd控制台输入 gradle cleanidea eclipse 开始编译成功之后会提示的,耐心等待吧。
    I:springokspring-framework
    操作步骤如下:
    1. 进入当前的目录:
    2. 命令编译命令为:gradle cleanidea eclipse 
    编译成功了 成功转化为eclipse项目。
    编译可能遇到的问题:
    spring编译错误可能出现的错误:
    1. 提示build.gradle 配置文件错误,解决的办法哪里提示错误把哪行注释或者删除即可(大部分原因因为test测试错误去掉不用测试即可)如下图所示:
    2. spring3X系列需要jdk5以上版本,spring4X编译需要jdk8版本,根据自己编译的版本决定。
    3. jar包一直卡着下载不下来(可能网络不好最好能翻墙)
     

    导入eclipse

    批量导入到eclipse后如果出现感叹号或者错误,可能依赖的项目还没有编译缺少那个就编译那个吧,所有依赖的项目编译通过,这个编译的项目也通过。
    最终效果:
    ok大功告成,开启我们的spring源码学习之旅吧。加油奋斗。
  • 相关阅读:
    .htaccess注释
    Ubuntu开机自启动jar包和Nginx
    Rook部署和管理Ceph集群
    Python 打包 Nuitka
    Python 反射 备查
    Python 屏幕坐标点取色
    Python pynput 监听事件
    【线性代数】基本概念
    C# 调用SendMessage刷新任务栏图标(强制结束时图标未消失)
    Asp.Net Core Swagger 接口分组(支持接口一对多暴露)
  • 原文地址:https://www.cnblogs.com/panchanggui/p/9394760.html
Copyright © 2011-2022 走看看