SpringFramework(一) 源码编译

本文档介绍了如何配置和优化Spring框架的Gradle环境,包括设置JDK和Gradle版本,修改gradle-wrapper.properties文件以避免远程下载,添加阿里云镜像加速编译,解决编译过程中遇到的CoroutinesUtils类找不到和InstrumentationSavingAgent问题。同时提供了导入IDEA后的编译步骤和测试DEMO,帮助开发者顺利进行项目构建。
摘要由CSDN通过智能技术生成

本篇文章引用了多篇文章,但不记得是哪些文章了,当时遇到问题百度记录的。
如果同学发现原创地址,可评论列出,我会在文章中标明。
肯定是多个文章的集合,所以发布为原创

编译准备

  1. JDK环境(1.8+)
  2. Gradle环境(匹配spring环境)

注意:gradle环境不要使用spring的下载链接,去官网下载对应版本。具体版本最好与源码中gradle/wrapper/gradle-wrapper.properties中的下载链接版本一致。

修改配置文件

  1. 修改gradle\wrapper\gradle-wrapper.properties文件内容,让它使用我们自己配置的gradle,要不然它还是会去远程下载。

    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    #distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
    distributionUrl=file\:~/.gradle/gradle-5.6.4.zip
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    
  2. build.gradle注释掉一行代码

  3. build.gradle文件中找到repositories部分,添加阿里云镜像,编译会更快
    在这里插入图片描述

    		maven{  url 'https://maven.aliyun.com/nexus/content/groups/public/'}
    			maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
    			maven { url "http://repo.springsource.org/plugins-release" }
    
  4. settings.gradle文件并打开,修改repositories部分
    在这里插入图片描述

    maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
    

进行预编译

# linux/Mac:在配置好gradle环境之后执行
gradle :spring-oxm:compileTestJava
# Windows
gradlew :spring-oxm:compileTestJava

注:正常应该需要几分钟时间

导入IDEA

注意:导入进去后就开始编译了,就需要暂停编译。我这里IDEA版本为2020.3(Mac),不同版本/系统需要找到对应的地方。
在这里插入图片描述

测试DEMO

新建gradle模块,修改gradle配置文件,引入依赖 compile(project(":spring-context"))

@Service
public class UserService {
	public void sayHello(){
		System.out.println("你好呀spring!");
	}
}
@Configuration
@ComponentScan("mine.test")
public class App {
	public static void main(String[] args) {
		ApplicationContext context=new AnnotationConfigApplicationContext(App.class);
		UserService bean = context.getBean(UserService.class);
		bean.sayHello();
	}
}

常见问题

  1. 每次编译,都会有很多Task,这里settings-Tools-Gradle
    在这里插入图片描述

  2. 第1步后经常会报错,CoroutinesUtils找不到该类

    点击File -> Project Structure -> Libraries -> + -> Java,然后选择spring-framework/spring-core/kotlin-coroutines/build/libs/kotlin-coroutines-5.2.12.RELEASE.jar,在弹出的对话框中选择spring-core.main,在重新build项目即可

  3. 第2步后可能会出现另一个问题,找不到InstrumentationSavingAgent

    找到报错模块的gradle文件,这里是: spring-context.gradle,把optional修改为compile

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译Spring源码,你需要先安装JDK并下载Spring源码。你可以从Spring官方的GitHub库中下载源码,链接是https://github.com/spring-projects/spring-framework。如果你觉得下载速度慢,也可以使用这个已经下载好的链接:https://pan.baidu.com/s/18lEeQCwQKo1E4bli4SAJ2A 提取码:dvda。一旦你下载好了源码,你可以按照以下步骤进行编译: 1. 配置好JDK环境变量,确保你可以在命令行或终端中运行Java和Javac命令。 2. 打开命令行或终端,进入到你下载好的Spring源码的根目录。 3. 运行命令`./gradlew build`(对于Windows系统,运行`gradlew.bat build`),这将使用Gradle构建目并编译源码。 4. 等待编译完成,你可以在构建目录中找到生成的编译结果。 请注意,编译Spring源码可能需要一些时间和计算资源,同时也需要一些基本的编译知识和工具配置。建议你在编译之前先阅读Spring官方文档中关于构建和编译的指南,以确保你有必要的环境和了解编译的要求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [spring源码编译](https://blog.csdn.net/jiayoubaobei2/article/details/127311223)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [spring源码编译完整版](https://blog.csdn.net/qq_39409977/article/details/107904932)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值