spring - 源码下载与构建
?一、環境準備
????????工欲善其事,必先利其器。
? ? ? ? 在構建spring源碼前,我們首先要準備好環境。spring 5.x版本需要jdk1.8及以上版本的支持,jdk版本過低的同學請先升級,這里不做過多累贅。
????????從spring 5.0開始采用Gradle編譯,所以需要先安裝gradle,spring 5官方推薦的版本gradle 4.0,下載解壓后按以下步驟操作即可。
????????第一步,配置環境變量。
? ? ? ??
? ? ? ? 第二步,添加環境變量“%GRADLE_HOME%\bin”。
? ? ? ??
????????第三步,檢測環境,輸入gradle -v命令,如果版本顯示正常,說明安裝成功。?
? ? ? ??
二、源碼下載
????????從Spring 3.0開始,Spring源碼采用GitHub托管,不再提供官網下載鏈接。這里不做過多贅述,大家可自行去GitHub網站下載,我使用的版本為:v5.1.0.RELEASE,下載完成后,解壓源碼包會看到如下圖所示的文件目錄。?
? ? ? ?
三、源碼編譯
? ? ? ? 第一步,修改鏡像(build.gradle)。
repositories {maven { url 'https://maven.aliyun.com/nexus/content/groups/public/'}maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}mavenCentral()maven { url "https://repo.spring.io/libs-spring-framework-build" } }? ? ? ? 第二步,切換到項目目錄,使用 gradlew :spring-oxm:compileTestJava 命令進行編譯。
? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?備注:以上報錯信息無需關注
????????常見錯誤:
????????1.unauthorized
? ? ? ??
? ? ? ? ?原因分析及解決方案:
? ? ? ? ? ? ? ? spring.io認證失敗,需要登錄才能下載,用aliyun倉庫替代替,修改setting.gradle。
repositories {maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}mavenCentral()maven { url "https://repo.spring.io/libs-spring-framework-build" }}????????第三步,將源碼導入到idea 。
? ? ? ? 按照以下步驟進行導入,導入后自動進入builder,過程較為漫長,請耐心等待。
? ? ? ? file->new->Project from Existing Source.
????????
?????????
?????????
?????????構建成功
????????
四、測試
? ? ? ? 第一步,新建模塊(項目右鍵->new->Module)
????????
?????????
? ? ? ? 第二步,添加依賴。
compile(project(":spring-context")) compile(project(":spring-instrument"))?????????
? ? ? ??第三步,編寫測試類。
public class User {private Integer id;private String name = "不才";public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;} } @Configuration @ComponentScan("com.test.bean") public class Test {public static void main(String[] args) {ApplicationContext context = new AnnotationConfigApplicationContext(Test.class);User user = context.getBean(User.class);System.out.println(user.getName());} }? ? ? ? 正常輸出,大功告成。
? ? ? ?
總結
以上是生活随笔為你收集整理的spring - 源码下载与构建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于JWT(Json Web Token
- 下一篇: SRM 698 div1 RepeatS