git clone https://github.com/spring-projects/spring-framework2 下载Gradle
下载地址:https://gradle.org/install/#helpful-information
因为spring源码和gradle有版本一致性的问题,下载安装完gradle之后需要在spring源码根目录执行响应的gradle版本设置:
./gradlew wrapper --gradle-version=7.4.2 --distribution-type=bin3 spring源码编译
进入spring源码根目录下执行:
./gradlew :spring-oxm:compileTestJava4 导入spring源码到IDEA
github提供的已知问题.
修改spring源码根目录中的gradle.properties文件:
org.gradle.daemon=true org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.configureondemand=true
File -> New -> Project from Existing Sources -> 找到选择spring-framework源码并且导入:
配置项目用本地的gradle,不用idea自带的,并且设置jdk为11:
这个时候idea就会开始自动build了,等待即可
5 排除模块可右击某个模块 -> Load/Unload Modules->Unload 即可:
选择File->New->Module,然后选择Gradle,选择jdk为1.8,模块名为spring-debug,创建完成之后拷贝spring-test的gradle配置到sping-debug中进行覆盖,并修改描述为Spring Debug
编写测试类:
package com.redisread.bean.test;
public class MyTestBean {
private String testStr = "testStr";
public String getTestStr() {
return this.testStr;
}
public void setTestStr(String testStr) {
this.testStr = testStr;
}
}
创建bean配置文件:
新建单测:
package com.redisread.bean.test;
import junit.framework.TestCase;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class MyTestBeanTests extends TestCase {
@Test
public void testSimple() {
BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));
MyTestBean bean = (MyTestBean) bf.getBean("myTestBean");
System.out.println(bean.getTestStr());
assertEquals("testStr", bean.getTestStr());
}
}
就可以打断点调试了!
常见错误参考-
使用 IntelliJ IDEA 构建 Spring Framework 5.3.21 源码问题解决 - 本宫在,尔等都是妃 - 博客园
编译过程中出现与 ‘-Werror’ 有关的错误及其解决方案:
原因:-Werror 的作用是将全部的 warning 当成 error。 解决方案:全局搜索 -Werror 关键字,并注释该选项。
-
摇篮 | 安装
如果您现有的基于 Gradle 的构建使用Gradle Wrapper,您可以通过运行任务轻松升级wrapper,指定所需的 Gradle 版本:
$ ./gradlew wrapper --gradle-version=7.4.2 --distribution-type=bin
-
MacOS 使用IDEA阅读源码并调试 - CodeAntenna
-
https://blog.csdn.net/qq_40367066/article/details/114935563
-
idea编译报错处理:No tests found for given includes_卯丁戌的博客-CSDN博客



