将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 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2717
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2192
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4878
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2665
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6948
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4045
来自专栏魂祭心

原 canvas绘制clock

4164
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2586
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏java 成神之路

使用 NIO 实现 echo 服务器

4737

扫码关注云+社区