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

这篇具有很好参考价值的文章主要介绍了spring6.0.x源码调试环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果

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

给源码添加注释。

给源码打包

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

步骤

源码网址

Spring Framework

下载代码

fork到自己的GitHub仓库,然后拉代码

git clone https://github.com/GitHubXiaoSiyuan/spring-framework-6.0.7.git

代码拉到 ~/files/projects/kernel_projects/fr
amework 目录下

gradle下载与配置

下载

https://gradle.org/releases/

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 都设置了

注释掉这段代码,然后重写就不报错了,纯粹的编译问题文章来源地址https://www.toymoban.com/news/detail-405719.html

参考

  1. Spring 6 源码编译和高效阅读源码技巧分享,备份

参考

  1. Spring6.0.0源码阅读环境搭建-gradle构建编译,备份
  2. Spring源码深度解析:一、Spring整体架构和源码环境搭建,备份

到了这里,关于spring6.0.x源码调试环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • [Spring6.0源码解析]简述@Configuration注解

    @Configuration 标注在类上,启动 Spring 会自动扫描 @Configuration 注解的类,将其注册到IOC容器并实例化bean对象。如果在 @Configuration 注解的类中使用 @Bean 注解某个类对象的方法,Spring也会自动将注解了 @Bean 的方法注册到IOC容器,并进行实例化。 @Configuration 注解本质上是个 @Compo

    2023年04月11日
    浏览(12)
  • 通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境

    通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境

    🔥 博客主页 : 小羊失眠啦 🔖 系列专栏 : C语言 、 Cpolar 、 Linux ❤️ 感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 前后端分离项目中,在调用接口调试时候,我们可以通过

    2024年02月08日
    浏览(10)
  • TCP/IP协议栈源代码分析:GDB调试环境搭建及源码分析

    TCP/IP协议栈源代码分析:GDB调试环境搭建及源码分析

    Ubuntu 22.04 LTS Linux-5.4.34 busybox-1.36.0 2.1 安装相关工具 axel是一款多线程下载工具,用于下载Linux内核源代码及其他大文件;build-essential软件包里面包含了很多开发必要的软件工具,比如make、gcc等;QEMU是一种通用的开源计算机仿真器和虚拟器,为自己编译构建的Linux系统运行提供

    2024年02月03日
    浏览(8)
  • 音视频源码调试前准备vs2019+qt5.15.2搭建可调试环境

    音视频源码调试前准备vs2019+qt5.15.2搭建可调试环境

    安装vs2019+qt,并且在windows环境上安装ffmpeg,尝试使用qt+cdb进行调试,尝试使用vs2019加载qt的程序。 安装VS2019+5.12.2qt环境,并进行测试。 1:安装Visual Studio 2019, a.从官网下载,或者vs2019社区版本下载地址 https://www.jb51.net/softs/700418.htm ====》 安装时必须勾选 Desktop development with C++

    2024年02月05日
    浏览(16)
  • 动力节点|Spring6框架学习教程,从基础到手撕源码一套打通

    动力节点|Spring6框架学习教程,从基础到手撕源码一套打通

    Spring框架已广泛应用于诸多Java应用程序的开发中,它提供了很多解决方案及最佳实践,简化了Java应用程序的开发过程并加速了开发。 Spring6.0版本是下一个十年的新开端,动力节点老杜精心打造全新升级版Spring6教程,手把手教学,带大家从小白 蜕变 成为技术大牛 让 初学者

    2024年02月13日
    浏览(10)
  • Spring-5.0.x源码下载及本地环境搭建

    Spring-5.0.x源码下载及本地环境搭建

    从github上下载Spring的源代码 下载地址:https://github.com/spring-projects/spring-framework 访问地址之后,打开Spring的代码页面找到你想下载的版本,如5.0.x,如下图所示: 切换版本后,点右侧的code按钮,拷贝地址,在本地的执行git clone命令 还是在Code按钮中点开,找到下载代码压缩包

    2024年02月11日
    浏览(12)
  • 【Spring6】| Spring6整合JUnit
一:Spring6整合JUnit

    【Spring6】| Spring6整合JUnit 一:Spring6整合JUnit

    目录 一:Spring6整合JUnit 1. Spring对JUnit4的支持 2. Spring对JUnit5的支持 1. Spring对JUnit4的支持 准备工作:pom.xml 注: 以前是直接使用单元测试Junit,现在使用Spring对Junit的整合! 声明Bean spring.xml配置 单元测试: ①以前的写法 ②使用Spring对Junit4的支持写法 (1)使用两个注解:

    2023年04月18日
    浏览(18)
  • 【Spring6】| Spring6整合JUnit
                    
            
一:Spring6整合JUnit

    【Spring6】| Spring6整合JUnit 一:Spring6整合JUnit

    目录 一:Spring6整合JUnit 1. Spring对JUnit4的支持 2. Spring对JUnit5的支持 1. Spring对JUnit4的支持 准备工作:pom.xml 注: 以前是直接使用单元测试Junit,现在使用Spring对Junit的整合! 声明Bean spring.xml配置 单元测试: ①以前的写法 ②使用Spring对Junit4的支持写法 (1)使用两个注解:

    2023年04月20日
    浏览(11)
  • pwn调试环境搭建

    pwn调试环境搭建

    不同的pwn题有不同的环境要求,堆题要求更多,patchelf可以满足一定场景的实现,但终究不如在实际对应的环境中搭建。如何快速搭建一个高效节省资源的环境也是一个不小的问题。 高效节省资源:一个主要调试环境+多个运行环境 =主机+docker容器 gdb+pwntools+pwndbg等等,网上这

    2024年02月01日
    浏览(13)
  • Rust环境搭建以及vscode调试环境配置

    Rust环境搭建以及vscode调试环境配置

    Rust 编译工具:https://www.rust-lang.org/zh-CN/tools/install Visual Studio Code:https://code.visualstudio.com/Download Rust的编译工具依赖C语言的编译工具。如果使用Linux系统,需要安装GCC或clang。如果使用macOS,需要安装Xcode。如果使用Windows系统,需要安装Visual Studio 2013以上的环境以使用MSVC或安装

    2024年02月12日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包