`
306963591
  • 浏览: 73396 次
  • 性别: Icon_minigender_1
  • 来自: 安徽省
社区版块
存档分类
最新评论

Spring 源码下载及编译

 
阅读更多

 

svn下载https://github.com/SpringSource/spring-framework/
 
2.环境与工具 
1)jdk不用提,必需品。最新的springFramework已经采用gradle编译,故需要下载gradle包,如果人懒的话不想下载直接跳到第二步
下载地址:
  http://services.gradle.org/distributions/gradle-1.1-all.zip
    解压后将gradle-1.1\bin目录路径添加到环境变量Path中,类似jdk的环境变量设置,cmd下输入gradle -version 查看当前版本是否路径配置成功
2)

修改下gradlew.bat中关于jvm内存设置的参数后,在cmd中进入\spring-framework目录中,运行 gradlew build -x test。跳过所有的测试,
因为测试总会有失败,原因在spring-oxm的测试用例有问题,导致编译失败,如果不信的话大可以试下,结果你懂得。。。

   如果运行gradlew 出现无法初始化jvm的消息,则需要修改下gradlew.bat中关于jvm内存设置的参数,git下来之后原始设置是set GRADLE_OPTS=-XX:MaxPermSize=1024m -Xmx1024m %GRADLE_OPTS%,,恐怕就springFramework开发组那么有钱...配置好高...本人4G内存条都不行囧,

可将MaxPermSize和Xmx稍微写小一点,512M完全没问题的

错误信息如下:

  Error occurred during initialization of VM
  Could not reserve enough space for object heap
  Could not create the Java virtual machine

 

gradlew,这个是存在在spring-framework目录下的一个bat文件,是对Gradle的一个封装,在使用这个命令时会自动去下载gradle,如果已经安装了gradle则在编  译过程中使用的gradlew命令应该都可以替换成gradle。自动下载gradle是根据gradle\wrapper目录中的gradle-wrapper.properties中配置的,distributionUrl=http\://services.gradle.org/distributions/gradle-1.0-bin.zip。

 

 然后就是漫长的等待下载jar包编译项目,如果第一步没有下载gradle包(约50M)等待时间更加漫长,因为每一个spring子项目都需要依赖很多的jar包,而且连接的是spring的http://repo.springsource.org/ 仓库下载,其速度可想而知,编译完成后可以发现,springFramework本来只有50多M的变成了近500M(包括生产的说明文档和class之类),其中的jar包大概有100-200M左右大家可以据此算出时间

第二次编译,第一次编译好的会自动跳过,然后继续没有完成的工作。第二次build了5分钟,结果failed......referenceHtmlMulti编译失败。。。重复编译2次均发现无用,发现当前存放springFramework路径有中文,将项目拷贝到纯英文的路径中

第五次重新编译有效,发现编译

:referenceHtmlMulti
:referenceHtmlSingle
:referencePdf
:reference

时候一直是等待状态,然后每个都过了5分钟左右才成功,差点忍不住kill了重来,看来有点耐心还是好事。。。

这几个其实是springFramework的官方说明文档,编译成功后在 \build\reference可以看到,英文好的还是很具有参考价值

过了这关然后继续是10多分钟的下载编译过程........

直到下午5点20分,折腾了一个小时多,第五次编译总算build successful

 

 

执行

./gradlew install 将jar包安装到gradle库

接下来是将源码导入到IDE中。

由于我是windows用户,所以参考import-into-idea.md的说明

这里,由于我使用的是eclipse,所以执行:

./gradlew cleanIdea eclipse 生成Eclipse导入需要的文件

 

 

在工程的根目录下有文件import-into-eclipse.sh,用editplus之类工具打开,可以看到,

官方说明的导入eclipse分了5步,本人就翻译给4级不过的童鞋算了

1.cmd窗口执行命令 gradlew cleanEclipse :spring-oxm:compileTestJava eclipse -x :eclipse

2.按照eclipse File > Import... > Existing Projects into Workspace导入所有的springFramework项目

3.在cmd窗口执行 gradlew :eclipse

4.按照eclipse File > Import... > Existing Projects into Workspace导入springFramework 父项目

5.如果你想获得git支持(反正我是不用了,呵呵),全选spring*项目,然后右键Team > Share Project... 弹出窗口选择Git然后下一步,

选择"Use or create repository in parent folder of project",点击完成。

 

上面的流程之所以那么长,其实无非就是如果gradlew eclipse那么会直接把父目录和所有子项目都生成.classpath和.project,但是

eclipse导入的时候是不支持继承的,所以你以为把所有的项目导入到eclipse中,其实所有的子项目都在eclipse中找不到对方,那肯定

找不到它们相互引用的类,F4果断无效,所以才有了先生成所有子项目的第一步和第二步导入,然后生成父项目的第三步和第四步导入

 

好了,现在重新DefaultListableBeanFactory 按下F4,总算继承的结构图出来了,代码没有任何问题,能和正常项目一样了

 

参考blog:http://www.cnblogs.com/bluesky4485/archive/2012/08/08/2628488.html

本文出自 “苦逼coder” 博客,请务必保留此出处http://mushiqianmeng.blog.51cto.com/3970029/787211

 
分享到:
评论

相关推荐

    spring 源码 通过gradle编译 直接导入 eclipse

    本资源提供了已经通过Gradle编译的Spring源码,使得开发者可以直接将其导入Eclipse IDE进行学习和研究。 首先,让我们详细了解Spring框架的核心概念。Spring是一个开源的Java平台,它简化了企业级应用开发,通过...

    编译好的Spring的eclipse工程!Spring源码

    这个压缩包包含的是编译好的Spring 4.3.0版本的源码,对于学习和理解Spring的工作原理极其有价值。 在Spring 4.3.0版本中,有几个重要的知识点值得深入探讨: 1. **IoC容器**:IoC是Spring的核心,它管理对象的...

    编译后的spring源码,可直接导入eclipse

    本压缩包提供的“编译后的spring源码”是学习和理解Spring工作原理的宝贵资源,对于Java开发者,尤其是希望深入Spring内部机制的人来说,这是一个不可多得的学习资料。 首先,导入Eclipse是开发Java项目的标准步骤...

    spring源码及编译所需jar包

    2. **Repack**:在编译Spring源码时,可能需要对某些库进行重打包(repack)。这是因为Spring有时会修改第三方库的源码以满足特定需求,如增强或定制功能。Repack工具可以帮助我们将修改后的类打包进新的jar中,以...

    spring源码注释中文

    Spring 源码注释中文版的提供,使得开发者能够更加深入地理解 Spring 的工作原理,无需经过复杂的编译过程,可以直接阅读源码注释来学习。 Spring 框架主要由以下几个关键模块组成: 1. **Core Container(核心...

    spring2.5源码编译

    《Spring 2.5源码编译全解析》 在软件开发领域,深入理解框架的源码对于提升技术水平和优化应用至关重要。Spring作为Java领域的主流框架之一,其2.5版本是许多开发者学习和研究的基础。本文将详细介绍如何编译...

    Spring源码深度解析第二版

    Spring源码深度解析第二版 Spring是一款广泛应用于Java企业级应用程序的开源框架,旨在简化Java应用程序的开发和部署。Spring框架的核心主要包括了IoC容器、AOP、MVC框架等模块。 第1章 Spring整体架构和环境搭建 ...

    spring3.2 源码编译后需要的jar

    spring3.2 源码编译后需要的jar,spring3.2 源码编译后需要的jar,spring3.2 源码编译后需要的jar

    spring源码下载及导入eclipse的工具集合

    首先,我们需要了解Spring源码下载的过程。Spring框架的源代码托管在GitHub上,因此我们可以直接通过访问GitHub仓库来获取。前往`https://github.com/spring-projects/spring-framework`,在此页面中,你可以看到...

    spring源码编译缺少jar包

    1. 下载缺失的jar包:你可以从Maven中央仓库或其他可靠的源下载这两个jar包,确保下载的版本与Spring源码所要求的版本匹配。 2. 添加到类路径:将下载的jar包添加到你的项目类路径中。如果是Maven项目,可以在pom....

    spring源码(编译好了,可以直接导入eclipse)

    标题提到的"spring源码(编译好了,可以直接导入eclipse)"表明这个压缩包包含的是已经编译完成的Spring框架源代码,可以直接在Eclipse集成开发环境中使用,便于学习和调试。 首先,Spring框架的核心组成部分包括...

    spring源码编译以及如何用eclipse运行的方法

    ### Spring源码编译及Eclipse运行方法详解 #### 一、下载Spring源码 首先,需要从官方网站或其他可靠的源获取Spring源码。本例中使用的版本为`spring-framework-3.1.0.RELEASE`,下载地址为:...

    spring3.2 源码编译后需要的jar2

    spring3.2 源码编译后需要的jar,spring3.2 源码编译后需要的jar,spring3.2 源码编译后需要的jar

    spring 源码环境搭建

    "spring源码" 是指 Spring 框架的源代码。 部分内容解释 1. 下载 GitHub 客户端安装 下载 GitHub 客户端是因为 Spring 源码托管在 GitHub 上,所以我们需要下载 GitHub 客户端来 clone Spring 源码。安装成功后,...

    spring源码编译缺失包

    在深入探讨Spring源码编译过程中可能遇到的缺失包问题之前,我们首先需要理解Spring框架的基本概念和其在Java开发中的重要性。Spring是Java领域中最广泛应用的轻量级框架,它提供了丰富的功能,包括依赖注入、AOP...

    spring源码编译缺少的cglib和objenesis包

    在深入探讨Spring源码编译过程中遇到的CGlib和Objenesis问题之前,我们先了解一下这两个库的基本概念。 CGlib(Code Generation Library)是Java的一个动态代理库,它主要用于生成子类来实现对目标对象的代理。在...

    spring5.0源码下载==> spring-framework.7z

    在这里,我们将深入探讨 Spring 5.0 源码的相关知识点,以及如何编译和下载。 首先,Spring 5.0 的源码可以从官方仓库或第三方平台获取,例如通过访问提供的博客链接...

    spring v3.2源码

    个人觉得spring3.2的源代码比较好编译,没啥脾气,像我之前下载的spring的最新版本源代码,还有spring4.0的源代码,不论是使用jdk1.6还是1.7甚至是1.8编译都出问题,结果还是觉得spring3.2编译过程轻松一点,配合...

    Spring编译过得源码

    Spring编译过得源码

    Spring源码编译缺少的两个包:spring-cglib-repack-3.2.0.jar和spring-objenesis-repack-2.2.jar

    在本案例中,"Spring源码编译缺少的两个包:spring-cglib-repack-3.2.0.jar和spring-objenesis-repack-2.2.jar"揭示了这两个关键的库对于Spring源码编译是必不可少的。下面将详细讲解这两个库的作用及其在Spring中的...

Global site tag (gtag.js) - Google Analytics