Spring源码编译和调试
一、准备工作
1、spring源码:
https://github.com/spring-projects/spring-framework/archive/v5.2.3.RELEASE.zip
2、gradle工具:
二、环境配置
1、系统变量
2、编辑Path
三、构建代码
1、Gradle环境检测:cmd 输入 gradle -v
2、文件解压: 修改更目录下 build.gradle
修改前:
repositories {
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
修改后:
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" }
}
3、构建工程:build ==>build project,等待构建完成
修改gradle地址为新安装的gradle-5.6.4
构建工程
构建完成
4、编译工程:gradlew :spring-oxm:compileTestJava
5、调试:新建gradle工程spring-debug2
gradle配置中添加spring-context坐标:compile(project(“:spring-context”))
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">
<bean id="person" class="com.bean.Person">
<property name="name" value="mollen"/>
<property name="age" value="18"/>
</bean>
</beans>
Person.java
package com.bean;
/**
* Description.
*
* @author mollen
* @created 2022-03-08 21:08
*/
public class Person {
private String name;
private String age;
public Person() {
}
public Person(String name, String age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
MyTest.java
package com.mollen;
import com.bean.Person;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* Description.
*
* @author mollen
*/
public class MyTest {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Person bean = context.getBean(Person.class);
System.out.println(bean);
}
}
效果展示
6、步骤总结:
配置Gradle => 修改仓库地址 ==> 构建工程 ==> 编译工程 ==> 调试
Tips:
1、Spring,Gradle最好和这里一致,避免编译各种报错
2、如果报git错误,需要安装与idea兼容的git版本