spring6.0.x源码调试环境搭建

打印 上一主题 下一主题

主题 1577|帖子 1577|积分 4731

效果

搭建一个spring源码调试环境,创建一个spring-demo模块,写一些测试代码。

给源码添加注释。

给源码打包

ubantu环境下搭建spring6.0.x源码环境

步骤

源码网址

Spring Framework

下载代码

fork到自己的GitHub仓库,然后拉代码
  1. git clone https://github.com/GitHubXiaoSiyuan/spring-framework-6.0.7.git
  2. 代码拉到 ~/files/projects/kernel_projects/fr
  3. amework 目录下
复制代码

gradle下载与配置

下载

https://gradle.org/releases/
gradle/wrapper/gradle-wrapper.properties
找到版本为7.6的 gradle
  1. distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
复制代码

找到 7.6 的版本,点击下载(注:点击之后,用迅雷下载很快)
下载链接如下(复制即可触发迅雷下载)
  1. https://downloads.gradle-dn.com/distributions/gradle-7.6-all.zip
复制代码

解压
  1. sudo unzip gradle-7.6-all.zip
复制代码


配置环境变量
  1. # 设置环境变量
  2. sudo vi /etc/profile
  3. # 在底部加入这一段
  4. # gradle
  5. export GRADLE_HOME=/home/xiaosy/files/development/gradle-7.6
  6. export PATH=$NODE_HOME/bin:$PATH
  7. # 变量生效
  8. source /etc/profile
  9. # 设置读写权限
  10. sudo chmod -R 777 /home/xiaosy/files/development/gradle-7.6/bin
  11. # 查看版本
  12. # 不知道为什么直接 gradle -v 没用
  13. /home/xiaosy/files/development/gradle-7.6/bin/gradle -v
复制代码


idea配置

配置gradle编译

Tools -> gradle
  1. # 路径
  2. 压缩包放在 /gradle/wrapper/ 目录下
  3. 路径配置
  4. /home/xiaosy/files/development/gradle-7.6
复制代码


下载二进制版本
  1. https://services.gradle.org/distributions/gradle-7.6-bin.zip
复制代码

jdk

设置为 jdk17
  1. # 设置环境变量
  2. sudo vi /etc/profile
  3. # 修改jdk路径
  4. # jdk
  5. export JAVA_HOME=/home/xiaosy/files/development/jdk17/jdk-17.0.6
  6. # 变量生效
  7. source /etc/profile
复制代码

gradle-wrapper.properties修改

打开 gradle/wrapper/gradle-wrapper.properties
将distributionUrld地址替换为本地gradle下载
  1. # 修改后
  2. distributionUrl=/home/xiaosy/files/development/gradle-7.6-all.zip
复制代码

build.gradle文件修改

替换国内镜像
  1.         repositories {
  2.                 maven { url "https://maven.aliyun.com/repository/central" }
  3.                 mavenCentral()
  4.                 maven {
  5.                         url "https://repo.spring.io/milestone"
  6.                         content {
  7.                                 // Netty 5 optional support
  8.                                 includeGroup 'io.projectreactor.netty'
  9.                         }
  10.                 }
  11.                 maven { url "https://repo.spring.io/libs-spring-framework-build" }
  12.                 if (version.contains('-')) {
  13.                         maven { url "https://repo.spring.io/milestone" }
  14.                 }
  15.                 if (version.endsWith('-SNAPSHOT')) {
  16.                         maven { url "https://repo.spring.io/snapshot" }
  17.                 }
  18.         }
复制代码

setting.gradle文件修改

替换国内镜像
  1.         repositories {
  2.                 maven {
  3.                         url 'https://maven.aliyun.com/repository/public'
  4.                 }
  5.                 maven {
  6.                         url "https://maven.aliyun.com/repository/google"
  7.                 }
  8.                 maven { url "https://maven.aliyun.com/repository/gradle-plugin/" }
  9.                 gradlePluginPortal()
  10.                 google()
  11.                 mavenCentral()
  12.         }
复制代码

注释

//注释掉不然会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的依赖。
  1. dependencies {
  2.     compile(project(":spring-beans"))
  3.     compile(project(":spring-core"))
  4.     testCompile group: 'junit', name: 'junit', version: '4.12'
  5. }
复制代码

在新项目的src/main/resource下添加spring-config.xml文件
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.            xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5.        
  6.         <bean id="person" >
  7.                 <property name="id" value="1"></property>
  8.                 <property name="name" value="zhangsan"></property>
  9.         </bean>
  10. </beans>
复制代码
创建测试bean和启动类
  1. public class Person {
  2.         private int id;
  3.         private String name;
  4.         public int getId() {
  5.                 return id;
  6.         }
  7.         public void setId(int id) {
  8.                 this.id = id;
  9.         }
  10.         public String getName() {
  11.                 return name;
  12.         }
  13.         public void setName(String name) {
  14.                 this.name = name;
  15.         }
  16. }
复制代码
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
  4.                 Person person = (Person) ac.getBean("person");
  5.                 System.out.println(person);
  6.         }
  7. }
复制代码
debug

1. 更改压缩包位置
  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
  1. sudo chmod -R 777 ~/files/projects/kernel_projects/framework/spring-framework-6.0.7
复制代码

3

Cause: zip file is empty

4


解决:
gradle.properties
  1. org.gradle.java.home=/home/xiaosy/files/development/jdk17/jdk-17.0.6
复制代码
俩 gradle.properties 都设置了

注释掉这段代码,然后重写就不报错了,纯粹的编译问题

参考

参考


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表