天天看点

将spring源码导入进eclipse/idea

环境准备

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就看到了)

将spring源码导入进eclipse/idea

一、导入eclipse

开始

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
           
将spring源码导入进eclipse/idea

需要这么长时间是因为会下载许多的依赖包。我用流量监控软件监控下载速度一直为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源码导入进eclipse/idea

③spring-oxm中单元测试报错

直接把所有文件打个zip包了事

二、导入Idea

这部分内容是后来加的,使用的spring源码版本4.3.21。

前3步都和eclipse一样,从第4步开始。

源码中提供了import-into-idea.md文件,照着操作来即可。

步骤如下:

1.预编译spring-oxm模块

在源码根目录下执行

./gradlew cleanIdea :spring-oxm:compileTestJava
           

这时命令提示符会显示正在下载一个gradle-2.14.1-bin.zip文件,下载非常慢。我们可以使用Evething工具搜索一下这个名称,确定所在目录后,手动从gradle官网下载该gradle版本放到该目录即可。下载网址是:https://services.gradle.org/distributions/。

然后再次执行上面的命令,这时就开始下载spring需要的依赖包了。

2.导入进idea(File->import project->import from external model->Gradle)

3.为spring源码设置jdk版本(1.8+)

4.排除spring-aspects模块(File->Project Structure->Modules)