将spring源码导入到eclipse中

前置条件:

1. 正确安装jdk,并配置好JAVA_HOME、PATH。(我这里安装的是jdk1.8)

2. 正确安装好eclipse。(我的eclipse版本是: Neon Release (4.6.0))

步骤:

1. 首先去下载spring的源码 https://github.com/spring-projects/spring-framework/releases。 因为我的jdk版本是1.8,所以我这里下载的版本是4.3.2。

下载完成之后解压到本地目录。

2. spring源码的编译需要gradle的支持,所以需要去gradle官网下载gradle https://gradle.org/gradle-download/。如果打不开可以到我的网盘下载: http://pan.baidu.com/s/1kVGu8yr

下载完成后同样只需要解压到本地目录,但是此时记得去配置环境变量 GRADLE_HOME和PATH。配置正确的话,在cmd输入: gradle -v 能够正确显示gradle版本。

3. 进入spring源码根目录,打开命令窗口,输入 import-into-eclipse.bat 运行脚本,这时候就开始编译spring源码并且生成可以导入eclipse的.classpath、.project文件了。在运行的开始可能出现下载类似:https://services.gradle.org/distributions/gradle-1.12-bin.zip 连接超时,这个是网络问题。可以多试几次,也可以在命令行请求这个文件的时候去浏览器直接输入这个路径。

编译的时间非常长。在编译的过程中很有可能会出现错误,这时候需要根据具体的错误信息自行百度解决。这里说一个需要注意的地方就是:源码跟路径下的build.gradle文件中一般有下面的话:

compileJava {
		sourceCompatibility = 1.6
		targetCompatibility = 1.6
	}
	compileTestJava {
		sourceCompatibility = 1.8
		targetCompatibility = 1.8
		options.compilerArgs += "-parameters"
	}

这个就是指定源码编译使用的是jdk1.6,而测试代码编译使用的是jdk1.8。也就是此时应该要安装jdk1.8.

4. 一路回车编译完成就可以在eclipse中导入了,导入的时候记得勾选eclipse中的列出下层的所有工程选项,否则导入的就是一个大的spring工程而不是各个工程分开。

 5. 导入完成之后发现spring-beans-groovy工程中有错误,这是由于eclipse中没有安装groovy插件导致的。直接: help--->install new software. 添加下面站点:

http://dist.springsource.org/snapshot/GRECLIPSE/e4.6/ 添加后选中required项进行安装。 不同版本的eclipse安装goorvy的站点列表参照:https://github.com/groovy/groovy-eclipse/wiki。安装完成之后重启eclipse即可,clean一下报错的工程即可。如果还报错,修改下groovy编译的级别为2.3:

第二次安装碰到的两个问题:

1. Unrecognized VM option 'MaxMetaspaceSize=1024m' 

原因: 该jvm参数在早期jdk1.8不支持 

修改方式:  删掉源码根路径 build.gradle 和 gradlew.bat中的该配置项。

2. 编译Spring core 的时候报 java.lang.reflect.Parameter找不到,且javac -version显示还是老版本

原因:本地前面安装了jdk1.6, 通过修改JAVA_HOME将路径指向jdk1.8,java -version显示1.8. javac -version显示的还是1.6,实际编译的时候运行的是jdk1.6,自然找不到对应的类。

修改方式: 1. 确保path中 %JAVA_HOME%\bin的配置在system32的配置前(索性将其移到第一位)  2. 确保只配置了一个path变量,需要注意包括用户变量和系统变量。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

Kickstart+PXE自动部署CentOS6.6

生产环境中对于部署大量的相同系统的服务器,如果逐台安装操作系统的话是非常浪费时间的工作,还好CentOS提供了无人值守安装系统的功能,下面就详细介绍一下配置步骤...

2304
来自专栏北京马哥教育

通过实例来学习使用Linux KVM

KVM是Kernel-based Virtual Machine的缩写,从名字上可以知道,KVM是在支持虚拟化硬件环境上,基于Linux操作系统内核的虚拟化技...

1792
来自专栏古时的风筝

使用 github 做代码管理,知道这些就够了

只要掌握了下面的常用命令,基本上用使用 github 就没有问题。github 有两种认证方式,一种是通过 ssh 私钥的方式,一种通过 https 的账号名...

3298
来自专栏性能与架构

Mysql 高可用 InnoDB Cluster 多节点搭建过程

1. 简介 InnoDB Cluster 的搭建可以分为两种情况: (1)实验环境 使用 sandbox 沙箱模拟数据库实例,这个非常简单,可以参考之前的一篇文...

3286
来自专栏张戈的专栏

Linux系统date命令无法修改或同步时间的解决办法

今天,在站长交流群里面,又一个站长抱怨服务器每星期都必须手动重启一次,否则 QQ 登陆功能无法使用,原因是服务器时间快了 5 分钟以上,腾讯服务器拒绝提供 AP...

3294
来自专栏技术记录

centOS7 mini配置linux服务器(一)安装centOs7

1、 准备centos-7 (minni镜像) 官网地址http://isoredirect.centos.org/centos/7/isos/x86_64/C...

1988
来自专栏CaiRui

linux NFS网络文件系统

一、NFS服务简介   NFS是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由sun公司开发,于1984年向外...

1949
来自专栏人工智能LeadAI

mysql配置 | 快速上手Linux玩转典型应用

https://dev.mysql.com/downloads/repo/yum/

1152
来自专栏古时的风筝

docker创建私有仓库

由于网速和大中华局域网效果,使得我们在DockerHub下载镜像的速度很慢,甚至一些国内的镜像仓库,也感觉速度不是很好。所以,很有必要在本地或者一个我们访问很快...

2089
来自专栏LanceToBigData

Hadoop(三)手把手教你搭建Hadoop全分布式集群

前言   上一篇介绍了伪分布式集群的搭建,其实在我们的生产环境中我们肯定不是使用只有一台服务器的伪分布式集群当中的。接下来我将给大家分享一下全分布式集群的搭建!...

2719

扫描关注云+社区