Spring-framework 源碼導入 IntelliJ IDEA 記錄
前言
想學習spring框架,不看源碼怎麽行。網上有很多教程,但是自己實施起來還是稍微有點坎坷的,不過最後還是成功了。遂以此文記錄。
環境說明:
Idea 2017.2.5
spring-framework v4.3.9.RELEASE
gradle 2.12 (版本太高好像有問題)
源碼下載
首先我們從github上克隆 spring的源碼。
然後使用 git tag 命令查看分支
我們將4.3.9.RELAESE 版本的代碼下載到本地。
gradle 安裝這裏不在介紹。
開始導入
我們打開源碼文件夾,打開 import-into-idea.md
然後執行命令: gradle cleanIdea :spring-oxm:compileTestJava (以下是一個稍微漫長的過程~~)
好,看到 BUILD SUCCESSFUL 很開心~~然後我們按照文檔中的做即可。
1. Pre-compile `spring-oxm` with `./gradlew cleanIdea :spring-oxm:compileTestJava`
2. Import into IDEA (File->import project->import from external model->Gradle)
3. Set the Project JDK as appropriate (1.8+)
4. Exclude the `spring-aspects` module (Go to File->Project Structure->Modules)
5. Code away
排除萬難
現實中當然沒有文檔中那麽順利,首先編譯會出一些錯誤,沒關系。我們先新建一個測試項目。 然後 File =>Project Structure. 選中測試項目,添加Dependencies。
這裏要提一句,本來 common-logging我是沒有加的,後來就會報ClassNotFound。於是我在pom,xml引入就好了。
<dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency>
最終測試
測試代碼很簡單:
public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); context.start(); UserService userService = context.getBean(UserService.class); String testResult = userService.getUserName(); System.out.println(testResult); }
然後運行,在源碼中打個斷點,斷點命中:
好了,剩下的我就不多說啦,我該去研究源碼了!!!
總結
整體而言還算順利,但是由於對modules不熟悉,所以中途遇到一些小問題。不過還好,算是解決了。希望文章對學習spring框架的你有所幫助。
Spring-framework 源碼導入 IntelliJ IDEA 記錄