效果 搭建一個spring源碼調試環境,創建一個spring-demo模塊,寫一些測試代碼。 給源碼添加註釋。 給源碼打包 ubantu環境下搭建spring6.0.x源碼環境 步驟 源碼網址 Spring Framework 下載代碼 fork到自己的GitHub倉庫,然後拉代碼 git clon ...
效果
搭建一個spring源碼調試環境,創建一個spring-demo模塊,寫一些測試代碼。
給源碼添加註釋。
給源碼打包
ubantu環境下搭建spring6.0.x源碼環境
步驟
源碼網址
下載代碼
fork到自己的GitHub倉庫,然後拉代碼
git clone https://github.com/GitHubXiaoSiyuan/spring-framework-6.0.7.git
代碼拉到 ~/files/projects/kernel_projects/fr
amework 目錄下
gradle下載與配置
下載
gradle/wrapper/gradle-wrapper.properties
找到版本為7.6的 gradle
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
找到 7.6 的版本,點擊下載(註:點擊之後,用迅雷下載很快)
下載鏈接如下(複製即可觸發迅雷下載)
https://downloads.gradle-dn.com/distributions/gradle-7.6-all.zip
解壓
sudo unzip gradle-7.6-all.zip
配置環境變數
# 設置環境變數
sudo vi /etc/profile
# 在底部加入這一段
# gradle
export GRADLE_HOME=/home/xiaosy/files/development/gradle-7.6
export PATH=$NODE_HOME/bin:$PATH
# 變數生效
source /etc/profile
# 設置讀寫許可權
sudo chmod -R 777 /home/xiaosy/files/development/gradle-7.6/bin
# 查看版本
# 不知道為什麼直接 gradle -v 沒用
/home/xiaosy/files/development/gradle-7.6/bin/gradle -v
idea配置
配置gradle編譯
Tools -> gradle
# 路徑
壓縮包放在 /gradle/wrapper/ 目錄下
路徑配置
/home/xiaosy/files/development/gradle-7.6
下載二進位版本
https://services.gradle.org/distributions/gradle-7.6-bin.zip
jdk
設置為 jdk17
# 設置環境變數
sudo vi /etc/profile
# 修改jdk路徑
# jdk
export JAVA_HOME=/home/xiaosy/files/development/jdk17/jdk-17.0.6
# 變數生效
source /etc/profile
gradle-wrapper.properties修改
打開 gradle/wrapper/gradle-wrapper.properties
將distributionUrld地址替換為本地gradle下載
# 修改後
distributionUrl=/home/xiaosy/files/development/gradle-7.6-all.zip
build.gradle文件修改
替換國內鏡像
repositories {
maven { url "https://maven.aliyun.com/repository/central" }
mavenCentral()
maven {
url "https://repo.spring.io/milestone"
content {
// Netty 5 optional support
includeGroup 'io.projectreactor.netty'
}
}
maven { url "https://repo.spring.io/libs-spring-framework-build" }
if (version.contains('-')) {
maven { url "https://repo.spring.io/milestone" }
}
if (version.endsWith('-SNAPSHOT')) {
maven { url "https://repo.spring.io/snapshot" }
}
}
setting.gradle文件修改
替換國內鏡像
repositories {
maven {
url 'https://maven.aliyun.com/repository/public'
}
maven {
url "https://maven.aliyun.com/repository/google"
}
maven { url "https://maven.aliyun.com/repository/gradle-plugin/" }
gradlePluginPortal()
google()
mavenCentral()
}
註釋
//註釋掉不然會A build scan was not published as you have not authenticated with server 'ge.spring.io'.
用idea集成的gradlereload
編譯成功
新建module
在新項目的build.gradle下添加對spring模塊的依賴,這裡我先添加了spring-beans 和spring-core的依賴。
dependencies {
compile(project(":spring-beans"))
compile(project(":spring-core"))
testCompile group: 'junit', name: 'junit', version: '4.12'
}
在新項目的src/main/resource下添加spring-config.xml文件
<?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">
<!--把對象的創建交給spring來管理-->
<bean id="person" class="com.wts.Person">
<property name="id" value="1"></property>
<property name="name" value="zhangsan"></property>
</bean>
</beans>
創建測試bean和啟動類
public class Person {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
Person person = (Person) ac.getBean("person");
System.out.println(person);
}
}
debug
1. 更改壓縮包位置
The specified Gradle distribution 'file:/home/xiaosy/files/projects/kernel_projects/framework/spring-framework-6.0.7/gradle/wrapper/home/xiaosy/files/development/gradle-7.6-all.zip' does not exist.
2
設置文件讀寫許可權
Could not create parent directory for lock file /gradle-7.6/wrapper/dists/gradle-7.6-all/cmg34oui1skho6ogkheeq1oxe/gradle-7.6-all.zip.lck
sudo chmod -R 777 ~/files/projects/kernel_projects/framework/spring-framework-6.0.7
3
Cause: zip file is empty
4
解決:
gradle.properties
org.gradle.java.home=/home/xiaosy/files/development/jdk17/jdk-17.0.6
倆 gradle.properties 都設置了
註釋掉這段代碼,然後重寫就不報錯了,純粹的編譯問題