环境准备
spring源码:spring-framework-3.2.18.RELEASE(githhub地址)
jdk版本: jdk7(spring4需要使用jdk8)
gradle: 3.1
(编译spring时会自动下载gradle,不会使用自己安装的gradle。
该spring版本源码对应的build.gradle文件中定义了编译时使用的gradle的版本,使用ctrl+f搜索一下gradleversion就看到了)
开始
1.安装gradle,并配置环境变量
参考gradle的使用
2.配置仓库
buildscript {
repositories {
//Maven本地资源库
mavenLocal()
//阿里云仓库
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
//spring仓库
maven { url "https://repo.spring.io/plugins-release" }
//Maven中央资源库
mavenCentral()
}
dependencies {
classpath("org.springframework.build.gradle:propdeps-plugin:0.0.7")
classpath("io.spring.gradle:docbook-reference-plugin:0.3.1")
}
}
3.编译(可选)
我们只是要生成eclipse需要的工程构建文件,编不编译无所谓。这里我直接省略
4.生成eclipse构建文件,并导入
自带的import-into-eclipse.bat这个批处理程序有问题,所以还是使用原生的命令来导入。使用如下的命令
gradle eclipse -x :eclipse
需要这么长时间是因为会下载许多的依赖包。我用流量监控软件监控下载速度一直为2K/S,因此花这么长时间也可以理解。在这之前我使用自带的批处理文件来跑时,发现根本就没有下载流量消耗。
成功后,随便进入一个子工程,就会看到生成了.project,classpath和.settting,这正是eclipse所需要的。然后就可以导入了
5.导入后报错及解决
①少了spring-cglib-repack-3.1.jar
解决方法:
从网上去找一个下载。或者自己从源码中提取打包成jar,可参考网上博客
②提示rt.jar中的类受限
解决方法:
Project -> Properties -> libraries,
先 remove 掉 JRE System Library,然后再 Add Library 重新加入。
③spring-oxm中单元测试报错
直接把所有文件打个zip包了事