spring源碼轉eclipse工程(查看spring源碼)


申明:本文大部分是轉載的

  1. 本例spring源碼版本是4.0.0的,

    1. 所以jdk需要准備1.8的(不同版本源碼要求的jdk不一樣)
    2. 下載最新版本的Eclipse Luna
  2. github

 

Spring 的源碼已經從 svn 遷移到 GitHub。而且也改為基於 Gradle 的構建來構建項目。它取代了之前的 Ant+Ivy 系統,所以要構建 Spring 源碼環境首先要安裝 GitHub 以及 Gradle。

  1. 下載

 Windows 系統對應的 GitHub 版本下載地址為: https://desktop.github.com/ 。如圖所示:

  1. 安裝

  1. 點擊安裝包

  1. 開始安裝

  2. 下載安裝文件

  3. 安裝完成之后自動打開登陸界面(不需要,用不着)
  4.  

  5. 登陸github(不需要,用不着)

    1. 結果

 

    下載、安裝,開始菜單上 GitHub 菜單,如圖:

      

 

  • 不依賴其他模塊:本附件配置將以第三方插件包的形式提供使用,它應該作為依賴關系的底層被依賴,而不能依賴其他業務模塊。(DNA核心除外)
  • 擴展靈活:提供統一框架,滿足各個項目的個性化附件配置需求。

 

  1. Gradle

  Gradle 是一個基於 Groovy 的構建工具,它使用 Groovy 來編寫構建腳本,支持依賴管理和多項目創建,類似 Maven,但比其更加簡單輕便。

 

  Gradle 為 Ivy 提供了一個 layer,提供了 build-by-convention 集成,而且他還讓你獲得許多類似 Maven 的功能。

  1. 下載

Gradle 的下載地址是:http://www.gradle.org/downloads 作為初學者建議選擇包含文檔和樣例源碼的壓縮文件較好,將下載文件解壓。如果你下載的是gradle-xx-all.zip的完整包,它會有以下內容:二進制文件用戶手冊(包括PDF和HTML兩種版本),DSL參考指南,API手冊(包括Javadoc和Groovydoc),樣例源代碼,僅供參考使用。

 

  1. 配置環境變量

在windows中的Gradle配置:在環境變量對話框中,定義環境變量GRADLE_HOME到你的gradle根目錄當中,然后修改環境變量 Path,即追加 %GRADLE_HOME%\BIN;(linux或mac的是$GRADLE_HOME/bin)。

  1. 檢查

配置完成之后,當完成系統變量的配置后打開命令窗口輸入命令 " gradle -version ",如果出現Gradle對應的版本信息,表示安裝成功。

        

  1. Spring源碼下載

    1. 直接網站下(這個可以,選擇需要的版本源碼,三選一)

下載地址:https://github.com/SpringSource/spring-framework/tags/

選擇需要的版本下載zip即可。

  1. svn (地址都有了用啥下都一樣了,三選一)

下載地址:https://github.com/SpringSource/spring-framework/tags/

Window-->Open Perspective -->SVN資源庫研究把源碼用svn checkout到本地磁盤

  1. 使用github下載Spring(不推薦使用這種方式,只能是最新的源碼,請跳過)

  單擊快捷菜單中的 Git Shell 選項,打開 GitHub 后,可以通過 cd 命令將當前操作目錄轉換到我們想要存儲源碼的目錄。

    例如:e:\test ,執行命令 cd e:\test

  輸入以下命令:

    git clone git://github.com/SpringSource/Spring-framework.git

  其中,git://github.com/SpringSource/Spring-framework.git 為Spring的源碼地址。執行命令后便進入源碼下載狀態。

  經過一段時間的等待后源碼下載結束,窗口狀態如下圖

  而這時,對應的文件夾下已經存在相應的源碼信息,如下圖所示。

 

  1. Spring源碼構建

使用gradle構建項目

  當前的源碼並不可以直接導入 Eclipse 中,我們還需要將源碼轉換為 Eclipse 可以讀取的形式。

  1. 單個工程構建(二選一,不推薦)

可以只對感興趣的工程進行 Eclipse 工程轉換,比如我們想要查看 Spring 事務部分的源碼,打開命令窗口,將當前目錄切換至源碼所在目錄,這里是 Spring-tx文件夾下,執行命令 gradle cleanidea eclipse 。當窗口出現如下狀態說明已經開始執行轉換過程,如下圖:

經過一段時間后轉換成功,如下圖所示、

這時,我們再查看對應的文件夾會發現,已經出現了作為 Eclipse 工程所必須的 .project 和 .classpath 文件了,如下圖所示

沒有編譯過的

編譯之后的

打開 Eclipse,將工程導入,導入后目錄結構如下圖

你會發現工程名稱前面有一個感嘆號,這說明項目存在錯誤。查看依賴及工程,會看到當前工程所依賴的包出現問題。如下圖

 但是,查看依賴的 Projects 時發現

依賴的項目出現問題,只需要把需要的幾個項目編譯之后導入就可以了。

依賴的包出現問題,后邊解決。

  1. 批量構建(二選一,推薦雖然時間長,但是減少導入后整理jar包的工作)

可以將所有工程一次性的編譯、導入。但是不推薦這樣的方式,這樣會耗費大量的時間,而且當存在編譯錯誤的時候,你不得不重新編譯。

  1. gradlew.bat(預構建)

pring-framework目錄里面有一個gradlew.bat批處理文件,雙擊出現控制台界面,連續按兩次回車鍵,下載各種依賴jar包和dom文件,公司外網不好,用了幾個小時,沒下下來,這就尷尬了。

  1. import-into-eclipse.bat (構建)

spring-framework目錄里面有一個import-into-eclipse.bat批處理文件,雙擊出現控制台界面,連續按兩次回車鍵,就可以開始自動構建了,構建過程需要花很長時間(如有沒有提前執行gradlew.bat,這里就會下載各種依賴jar包和dom文件)。

中間還經常出現停止不動的情況,按Ctrl+c終止運行,再一次雙擊import-into-eclipse.bat文件重復上述過程即可(會接着上次構建的位置繼續構建),到構建完成后控制台會自動關閉。

最后刪除spring-framework下的setting文件夾和project文件,否則eclipse只能導入整體,不能導入每個工程。

  1. Spring構建后的問題

    1. 依賴的包出現問題(發現批量構建成功后不會報這個錯誤)

暫時遇到:缺失spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar。

雖然可能從網上下載到這個2個包,但是,由於版本問題,還是不能使用。最好的解決辦法就是從源碼里邊將需要的包提取出來

  1. 下載對應版本的dist.zip文件

下載對應版本的dist.zip文件來提取需要的jar包(distribution,發布用的版本)訪問地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/ (可能會很慢)

  1. 提取

解壓spring-framework-4.3.0.RELEASE-dist\spring-framework-4.3.0.RELEASE\libs目錄下的spring-core-4.3.0.RELEASE.jar文件

在cmd命令窗口下切換到上一步的目錄下,

使用jar命令生成需要的jar文件 :

    spring-cglib-repack-3.2.4.jar

        命令:jar cvf spring-cglib-repack-3.2.4.jar org\springframework\cglib

    spring-objenesis-repack-2.4.jar

        命令:jar cvf spring-objenesis-repack-2.4.jar org\springframework\objenesis

  1. 檢查是否生成

查看當前目錄E:\spring\code\spring-framework-4.3.0.RELEASE-dist\spring-framework-4.3.0.RELEASE\libs\spring-core-4.3.0.RELEASE下確實生成了需要的jar文件

驗證一下生成的jar包的目錄結構是否正確(因為第一次操作的時候不注意,導致雖然包打好了,但是目錄結構不對,最終不能使用) 

  1. GroovyBeanDefinitionReader.java會報錯

如果eclipse沒有安裝groovy插件,則spring-beans-groovy包中的GroovyBeanDefinitionReader.java會報錯,因為eclipse不能編譯groovy腳本。

報錯信息:

Description Resource Path Location Type

GroovyDynamicElementReader cannot be resolved to a type    

GroovyBeanDefinitionReader.java    /spring-beans-groovy/src/main/java/org/springframework/beans/factory/groovy    line 391    Java Problem

Groovy 下載地址:http://groovy-lang.org/download.html

  1. 安裝groovy插件(在線)

step 1:檢查自己的eclipse版本:在help->About Eclipse中查看:

step 2:進入 https://github.com/groovy/groovy-eclipse/wiki查找和自己eclipse對應版本的groovy:

step 3:拷貝下載地址http://dist.springsource.org/snapshot/GRECLIPSE/e4.6/

step 4:打開eclipse,在eclipse中,選擇help -> Install New Software…:

step 5:選擇add,對話框中name隨便寫,地址將上面拷貝的地址粘貼進去:

step 6:等待一小會,會出現如下選項,全選后下一步:

  1. 重啟

重啟eclipse,然后clean一下項目就搞定了。

 

  1. Spring構建后的問題

    在Eclipse菜單File->import選擇General下面的Exsiting projects into workspace

 

  1. 參考借鑒

Spring環境搭建--Spring源碼深度解析:

http://www.cnblogs.com/chuzh/p/4996976.html

Spring官網下載dist.zip的幾種方法:

http://www.cnblogs.com/yjmyzz/p/3847364.html

spring源碼構建時缺失spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar:

http://www.itdadao.com/articles/c15a711547p0.html

spring源碼gradle獲得eclipse工程時,spring-beans-groovy項目GroovyDynamicElementReader報錯解決

http://blog.csdn.net/smithdoudou88/article/details/46356305

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM