文章目錄
- ①. 壞境搭建說明
- ②. 將原始碼環境匯入到碼云
- ③. 拉取專案,匯入IDEA
- ④. 測驗原始碼環境
- ⑤. 解決原始碼環境中亂碼問題
①. 壞境搭建說明
-
①. 注意注意:搭建spring原始碼環境,IDEA版本要用新版2020系列/2021的IDEA來構建spring原始碼環境,否則低于2020版本的idea,是不支持gradle 6.8.2以上高版本
-
②. gradle6.8.2 鏈接:https://pan.baidu.com/s/1aaOLqaH8Y-Es4lvxxmYnzg 提取碼:1234
gradle官網下載地址
JDK15 鏈接:https://pan.baidu.com/s/1DQyjPmWSn-N8LVJVizamNg 提取碼:1234 -
③. 將下載的gradle解壓到磁盤下

-
④. 配置環境變數

-
⑤. 配置下載加速
Gradle還是從 maven 倉庫下載的,
給gradle安裝目錄下init.d檔案夾,放一個init.gradle檔案

allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
def url = repo.url.toString()
if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
remove repo
}
}
maven {
url REPOSITORY_URL
}
}
}
# 下面這個可以不用
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
def JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter'
def GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
def NEXUS_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $JCENTER_URL."
println("buildscript ${repo.url} replaced by $JCENTER_URL.")
remove repo
}
else if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $GOOGLE_URL."
println("buildscript ${repo.url} replaced by $GOOGLE_URL.")
remove repo
}
else if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
println("buildscript ${repo.url} replaced by $REPOSITORY_URL.")
remove repo
}
}
}
jcenter {
url JCENTER_URL
}
google {
url GOOGLE_URL
}
maven {
url NEXUS_URL
}
}
}
repositories {
def JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter'
def GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
def NEXUS_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $JCENTER_URL."
println("buildscript ${repo.url} replaced by $JCENTER_URL.")
remove repo
}
else if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $GOOGLE_URL."
println("buildscript ${repo.url} replaced by $GOOGLE_URL.")
remove repo
}
else if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
println("buildscript ${repo.url} replaced by $REPOSITORY_URL.")
remove repo
}
}
}
jcenter {
url JCENTER_URL
}
google {
url GOOGLE_URL
}
maven {
url NEXUS_URL
}
}
}
}
- ⑥. 配置idea整合
如果你環境變數配置了GRADLE_USER_HOME,idea一般都會自動幫你感應到,如果沒有感應到,那你自己指定一下

②. 將原始碼環境匯入到碼云
-
①. Spring在github上的倉庫地址是
Spring在碼云上的倉庫地址是 -
②. 可同步Spring在github上的倉庫地址原始碼的,若也想跟我一樣的話,請看如下操作與截圖:

-
③. 同步spring的github原始碼地址到自己的碼云倉庫里面,然后點擊確定即可


③. 拉取專案,匯入IDEA
- ①. 然后利用git Bach來進行下載,注意一定要指定分支

- ②. 下載下來以后,匯入到idea里面



- ③. 然后就開始構建Spring原始碼了,進來專案以后,點Cancel,先別讓他加載,先進來設定jdk15



- ④. 然后點右側giadle進行專案的重繪,開始重新加載工程

- ⑤. 如無意外,構建Spring原始碼完成:

④. 測驗原始碼環境
- ①. 創建一個子工程名為:springsource-test,然后創建一個MainTest類進行測驗


- ②. 隨便找個spring的工程,比如找這個spring-websocket工程里面的spring-websocket.gradle這個配置,在這個spring-websocket.gradle里面找dependencies下面的compile(如下圖所示)
compile(project(":spring-context"))

-
③. 比如就測驗spring的ioc容器,就把compile(project(":spring-context"))這個復制到springsource-test工程下面的build.gradle的里面dependencies下面添加進去(如下圖所示)
- ④. 然后重新重繪一下springsource-test這個工程 -
⑤. 只要引入相關依賴成了,就可以創建一個IOC容器進行測驗了
一旦快捷鍵有提示,就說明引入成功了


package com.xiaozhi.bean;
public class Person{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="com.xiaozhi.bean.Person" id="person">
<property name="name" value="tangzhi"></property>
</bean>
</beans>
package com.xiaozhi;
import com.xiaozhi.bean.Person;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainTest {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
Person bean = context.getBean(Person.class);
System.out.println(bean);
}
}

⑤. 解決原始碼環境中亂碼問題
-
①. 當我們在原始碼壞境中輸入中文注釋時,會出現亂碼的現象
-
②. 點擊help – Edit Custom VM Options

-
③. 添加-Dfile.encoding=UTF-8解決亂碼問題,記得要重啟IDEA

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/291153.html
標籤:java
