Spring源码完美导入IDEA的过程
作者:阿Q 发布时间:2023-05-13 14:11:50
小伙伴私信我说想要研究下Spring的源码,想让我出一期教程来实现IDEA导入Spring源码,今天它来了~
版本 :IDEA 2020.2.3 ;Spring 5.0.x ;gradle 4.4.1 ;
先从github上面把 spring 源码下载下来并解压:
切记:解压完成后不要直接用IDEA 打开,因为Spring 的源码是用 gradle 构建的。如果已经用IDEA 打开了请删除后重新解压。
我们找到文件夹
spring-framework-5.0.x\gradle\wrapper
下的 gradle-wrapper.properties 文件,查看里边的 gradle 版本,去官网下载。
下载完成之后把 gradle 的环境变量配置一下,可以用gradle -version 来验证 gradle 是否配置成功
在 USER_HOME/.gradle/ 下面新建 init.gradle 文件,将国外源换成国内镜像
allprojects {
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if(url.startsWith('https://repo1.maven.org/maven2/')||url.startsWith('https://jcenter.bintray.com/')){
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
maven {
url REPOSITORY_URL
}
}
}
在 spring-framework-5.0.x 下打开git 的窗口执行以下命令
./gradlew :spring-oxm:compileTestJava
该命令的作用是将 spring 转成IDEA 可以导入的工程结构。
如果你新开的 Windows 的 dos 窗口,先进入源码的目录文件夹,执行命令不用加前面的./
配置 IDEA 中的 gradle
使用 File -> open 把 Spring 工程导入到 IDEA中,并等待 jar 下载完成。
如遇报错信息:
在 build.gradle 中添加
maven { url "http://maven.aliyun.com/nexus/content/groups/public"}
其目的就是为了换成国内的镜像(init.gradle 有时没有生效)
编译时报错如下:
原因是 gradle 和 gradle 插件版本过旧,更换更高的版本可以解决,但这个问题只是提示,不影响编译。
在 test 包中随便找了一个单元测试运行,成功运行
来源:https://developer.51cto.com/article/700652.html
猜你喜欢
- MyBatis注解实现动态SQL在 Mybatis 中,使用注解可以很方便的进行sql操作,但很多动态 SQL 都是由 xml 配置实现的。
- 示例代码:class BoxIntInteger {public static void main(String[] args) {Inte
- 相信大家最关心的肯定不是什么一大堆的破理论,然后还似懂非懂的,最关心得莫过于服务之间的参数传递,数据获取。Ok,今天就告诉大家三种微服务之间
- 本文演示以Spark作为分析引擎,Cassandra作为数据存储,而使用Spring Boot来开发驱动程序的示例。1.前置条件安装Spar
- 本篇主要描述“发送邮箱验证码、session校验”相关前(html\js)后(java)台代码,业务逻辑示例,闲话少诉,直接上代码。1、引入
- 一,FileWritter写入文件FileWritter, 字符流写入字符到文件。默认情况下,它会使用新的内容取代所有现有的内容,然而,当指
- spring boot ${}占位符不起作用问题:在 pom.xml 文件里定义好属性标签,然后在 properties或者xml 中使用$
- 前言本文主要给大家分享了关于java文字转语音播报的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧方法如下一、po
- 用java实现的登录与注册页面,实现了客户端(浏览器)到服务器(Tomcat)再到后端(servlet程序)数据的交互。这里在注册页面加入了
- 前言最近在工作中需要编译android下的动态库,本以为是一件简单的事,没想到因为工具,以及google本身被墙的原因,折腾了好久。在win
- 上篇博文:Java-多线程的使用equals与==1. ==的使用1.1 概述⭕ 用于基本类型比较值时:只要两个变量的值相等,即为true。
- 一、准备工作1、确定电脑上已经成功安装jdk7.0以上版本2、win10操作系统3、maven安装包 下载地址:http://maven.a
- 初次使用IDEA,创建一个maven工程,发现在目录结构中产生了两个不一样的东西——.iml文件和.idea文件夹。非常好奇,所以立刻上网查
- FPS是什么?FPS (每秒传输帧数(Frames Per Second))【摘自百度百科】FPS是图像领域中的定义,是指画面每秒传输帧数,
- //字符串的内存驻留机制 public static v
- 0.前言文章需求:对于学生来说,目前网上确实没有比较统一而且质量好的支付教程。因为支付对个人开发者尤其是学生来说不太友好。因此,自己折腾两天
- 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。数组虽然也可以存
- 目录1、Integer a = 1;2、对于同一类中的两个方法 , 在判断它们是不是重载方法时 , 肯定不考虑( )3、对于Java中异常的
- 简介Arthas 是Alibaba开源的Java诊断工具,动态跟踪Java代码;实时监控JVM状态,可以在不中断程序执行的情况下轻松完成JV
- 本文实例讲述了C#实现类似新浪微博长URL转短地址的方法。分享给大家供大家参考。具体如下:一、前台判断用户输入URL的JS代码如下。func