spring-framework 源码的下载与构建
整体流程:
- 本地环境准备
- 找到源码地址并拉取到本地
- 根据IDE工具查看源码中提供的不同的安装说明并具体操作
- 构建会出现的的错误及解决
一.本地环境准备
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源码这块硬骨头,不说了,我要去啃了,泪崩!
最新文章
- [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证
- 腾讯QQ形象18年变迁史,最早的QQ企鹅形象居然长这样!
- 证书与keytool
- 基于OCILIB的oracle数据库操作总结及自动生成Model和Dao的工具
- leetcode problem 37 -- Sudoku Solver
- ECMAScript位操作符
- 开发指南专题4:JEECG高速微云开发平台--JEECG开发环境的搭建
- (转)Mysql哪些字段适合建立索引
- 第65节:Java后端的学习之Spring基础
- Announcing the Updated NGINX and NGINX Plus Plug‑In for New Relic (Version 2)
- Hive介绍及安装
- Django学习(5)优雅地分页展示网页
- 【Python】JBOSS-JMX-EJB-InvokerServlet批量检测工具
- [转] 理解Web路由
- JSONPath使用说明
- tflearn 实现DNN 全连接
- sql—常用函数
- PyQt: eg2
- RotbotFrameWork接口测试
- hdu 3339 In Action (最短路径+01背包)