整体流程:

  1. 本地环境准备
  2. 找到源码地址并拉取到本地
  3. 根据IDE工具查看源码中提供的不同的安装说明并具体操作
  4. 构建会出现的的错误及解决

一.本地环境准备

  spring-framework 源码使用gradle构建的而不是maven,因此对于只熟悉maven的小伙伴儿们可能会多一个环节,不过不用怕,也很简单

  gradle官网https://services.gradle.org/distributions/上下载对应的版本

  

下载后解压并复制根目录的路径

在电脑环境变量中加入

GRADLE_HOME是上述复制的根路径

GRADLE_USER_HOME配置的是以前的maven仓库,变量名不能变动,gradle仓库可以复用maven仓库,这还是挺好的哈!

别忘了还要在path中配置一下

保存确定后cmd中查看一下是否安装成功

另一个IDE工具我用的是idea

二.找到源码地址并拉取到本地

  上github上找到spring-framework项目并获取下载地址

三.根据IDE工具查看源码中提供的不同的安装说明并具体操作

  源码下载后查看对应IDE工具的安装说明

打开import-into-idea.md

步骤中重点提一下第一步,在导入idea中要提前编译一下,不然会报错

进入源码的根目录中

进入dos命令窗口输入gradlew :spring-oxm:compileTestJava    在这里我犯了次傻,直接复制粘贴了./gradlew :spring-oxm:compileTestJava

这对于我首次用gradle的我真的是太残忍了

后面想了想,我本地是window系统,“./”似乎是类似shell脚本中的执行exe文件,于是我去掉了“./”,成功了,哈哈!

一段时间后提示成功

idea中从文件中new一个项目,注意选中到gradle.build,我之前只选到根目录似乎出现了问题哈

四.构建会出现的的错误及解决

  导入成功后构建过程中出现了好多次报错问题,也由于怀疑自己,重新下载了几次源码,网上查的问题是idea版本和gradle需要对应,这种答案似乎都不准确

  我本地是idea2018.1和gradle6.4.1,最终构建成功了

  最终build.gradle中有两个地方有大的改动,如下

buildscript {
repositories {
mavenLocal()
maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
maven { url "http://repo.springsource.org/plugins-release" }
mavenCentral()
}
dependencies {
classpath("io.spring.gradle:propdeps-plugin:0.0.9.RELEASE")
classpath("org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16")
}
}
repositories {
mavenLocal()
maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
maven { url "http://repo.springsource.org/plugins-release" } <-------------------------这个加入后里面下载插件的错误就解决了
mavenCentral()
}
 

按照安装说明排除掉“spring-aspects”模块

构建成功效果图

构建过程可能还会出现很多问题,解决了构建问题,接下来才能正式啃spring源码这块硬骨头,不说了,我要去啃了,泪崩!

spring-framework 源码的下载与构建的更多相关文章

  1. spring framework 源码

    spring framework 各版本源码下载地址 现在spring的源码下载地址真是不好找,这次终于找到了.记录一下,以帮助需要的朋友. https://github.com/spring-pro ...

  2. Idea搭建spring framework源码环境

    spring的源码目前放在github上,https://github.com/spring-projects/spring-framework 一.安装Git 二.安装Gradle gradle为解 ...

  3. Spring Framework 源码编译导入

    预先准备环境 Window 10 JDK环境 List item Gradle 以及其环境变量配置 spring-framework源码(https://gitee.com/mirrors/Sprin ...

  4. spring framework源码之SpringFactoriesLoader

    SpringFactoriesLoader 查询META-INF/spring.factories的properties配置中指定class对应的所有实现类. public abstract clas ...

  5. spring framework源码之AnnotationConfigApplicationContext

    AnnotationConfigApplicationContext 内部使用了AnnotatedBeanDefinitionReader:ClassPathBeanDefinitionScanner ...

  6. 精尽Spring MVC源码分析 - 调式环境搭建

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  7. 走进Spring Boot源码学习之路和浅谈入门

    Spring Boot浅聊入门 **本人博客网站 **IT小神 www.itxiaoshen.com Spring Boot官网地址:https://spring.io/projects/spring ...

  8. spring源码_下载以及转入eclipse (2016-11-08)

    本例spring源码版本是4.3.0的, 所以jdk需要准备1.8的(不同版本源码要求的jdk不一样) 1.8版本myeclipse10无编译环境,只有运行环境,出现点问题,下载最新版本的Eclips ...

  9. Spring源码研究--下载-编译-导入eclipse-验证

    一,环境配置 操作系统:Unbutu14.04LTS JDK: 1.8.0_40 git: 1.9.1 gradle: 2.2.1 二,源码下载-编译-导入eclipse-验证 1,下载 使用git直 ...

随机推荐

  1. 如何理解golang中的nil

    nil的奇怪行为 刚接触golang时,发现nil在不同的上下文,行为表现是不同的,并且和其他语言中的表现,也不大相同 实例1:输入true, true, false,不符合传递性 func main ...

  2. python装饰器在接口自动化测试中的应用

    在讲解装饰器在接口自动化测试项目的应用之前,我们先来介绍一下python装饰器到底是个什么 装饰器 说装饰器就不得不提一下函数这个一等公民了,在python中函数有几个特性先来了解一下 函数的一些特性 ...

  3. Django模板之认证机制(csrf_token)

    csrf认证机制: django中对POST请求,csrf会进行认证处理,csrf认证机制是防御跨站伪造功能,在没有任何处理的前提下,POST请求会报错. csrf认证中间件是在process_vie ...

  4. HashMap的源码浅析

    一.HashMap 的数据结构 Java7 及之前主要是"数组+链表",到了 Java8 之后,就变成了"数组+链表+红黑树". 二.Java7 源码浅析: 在 ...

  5. 第几天?(hdu2005)

    第几天那个代码模板可以保存起来. #include<stdio.h> #include<math.h> #define PI 3.1415927 using namespace ...

  6. vue实现对文章列表的点赞

    今天要做一个对文章点赞的功能,实现后的样式如下,点赞后的文章下面的大拇指图标会变红,并且点赞数加1 一开始分别遇到过两个问题:1.点文章中的一个赞,所有文章的赞全部变红了 2.点赞后,虽然当前文章的赞 ...

  7. Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(四)

    在上一讲中,我们已经完成了一个完整的案例,在这个案例中,我们可以通过Angular单页面应用(SPA)进行登录,然后通过后端的Ocelot API网关整合IdentityServer4完成身份认证.在 ...

  8. vs code插件自动压缩 min.css

    我们在进行相应的项目书写的时候,有些需要把scss 和 css 进行 压缩成 min.css 便于更好的使用 在这里强调一下 scss 后来才慢慢接触到这个语言的 感觉的确实懂得明白了之后  好用而且 ...

  9. zookeeper配置集群报错Mode: standalone

    按照https://www.cnblogs.com/wrong5566/p/6056788.html 一步步配置好以后,老是启动显示Mode: standalone ,即单机模式启动. 经过排查,排除 ...

  10. 粒子群优化算法对BP神经网络优化 Matlab实现

    1.粒子群优化算法 粒子群算法(particle swarm optimization,PSO)由Kennedy和Eberhart在1995年提出,该算法模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作 ...