欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

史上最全的idea编译Spring5源码

程序员文章站 2022-03-21 07:56:50
idea编译Spring5.2.x源码踩了一天的坑,请大家必须用5.2.x的版本,因为高版本 5.3 对jdk有要求,jdk8已经不行了,需求13。而且5.2.x想编译成功得注意 gradle 的版本,如果版本跟源码的要求不一致,则会编译失败。后面会一一介绍。文章目录idea编译Spring5.2.x源码前言一、grade下载准备二、grade安装1.grade直接解压2.配置环境变量3. 配置国内镜像三,下载 spring 5.2.x源码 并解压,用idea open打开 ,打开前有个注意事项,大...

idea编译Spring5.2.x源码

踩了一天的坑,请大家必须用5.2.x的版本,因为高版本 5.3 对jdk有要求,jdk8已经不行了,需求13。而且5.2.x想编译成功得注意 gradle 的版本,如果版本跟源码的要求不一致,则会编译失败。后面会一一介绍。



前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、gradle下载准备

gradle下载地址:https://services.gradle.org/distributions/ 建议下载带 all 的
史上最全的idea编译Spring5源码

我这里用的是gradle.5.6.4 对应spring5.2.x 的要求,看下面这个文件。
史上最全的idea编译Spring5源码
史上最全的idea编译Spring5源码
这里介绍下 distributionUrl : 一旦这个项目引入idea,idea会自动根据这个路径去下载gradle,则就是官方的默认配置,这里可以用本地路径替代

==distributionBase = GRADLE_USER_HOME gradle的安装路径 ==

二、gradle安装

1.gradle直接解压

史上最全的idea编译Spring5源码

== 此时有个 注意点,就是把下载的那个zip解压后直接放入到 gradle-5.6.4-all 文件夹中(为了后续引入方便,就是上面讲的distributionUrl 绝对路径引入)==

史上最全的idea编译Spring5源码

2.配置环境变量

史上最全的idea编译Spring5源码

== 新建GRADLE_HOME后,path中增加%GRADLE_HOME%/bin;即可==
史上最全的idea编译Spring5源码

cmd 查看 gradle 是否配置成功 输入 gradle-v 如下则代表成功
史上最全的idea编译Spring5源码

3. 配置国内镜像

进入 Gradl e安装目录,在 init.d 目录下新建 init.gradle 文件,并添加以下内容:

allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            def url = repo.url.toString()
            if ((repo instanceof MavenArtifactRepository) && (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
        }
    }
}

史上最全的idea编译Spring5源码

三,下载 spring 5.2.x源码 并解压,用idea open打开 ,打开前有个注意事项,大家先别急,先往下看。往下看,往下看。我说了三遍。

spring5.2.x 下载地址 :https://github.com/spring-projects/spring-framework/tree/5.2.x 直接下载 zip 本地解压就好

史上最全的idea编译Spring5源码
史上最全的idea编译Spring5源码
史上最全的idea编译Spring5源码

== 此时刚打开项目,idea会根据项目配置自动去下载 gradle相关配置,一旦看到下面窗口 点击 Cancel,然后 idea配置我们本地 gradle即可==
史上最全的idea编译Spring5源码
idea 点击settings配置
史上最全的idea编译Spring5源码

修改 Spring-Framework 目录下 gradle/wrapper/gradle-wrapper.properties 文件; 将distributionUrl 属性进行修改,将 distributionUrl 属性对应的网络地址 修改为本地的地址,最要也把gradle-6.7.1-bin.zip 先下载到本地,这一步不做,恶心的gradle 每次build 的时候都会去网络上下载一次,也是很慢,
在系统的环境变量上添加 GRADLE_USER_HOME 参数 和JAVA_HOME一样设置,这里没有设置gradle 下载的资源都会放在 c:\User\当前用户.gradle 目录下,C盘大的话可以不用设置

distributionUrl=file:///E:/gradle-5.6.4-all/gradle-5.6.4-all.zip(这个就是上面提到的下载后的zip也放到解压目录中,跟这个配置文件对应)

史上最全的idea编译Spring5源码

添加项目 gradle 镜像

在根目录当前build.gradle 搜索 repositories

史上最全的idea编译Spring5源码

搜索 repositories
添加如下

repositories {
			maven { url "https://maven.aliyun.com/nexus/content/groups/public" }
			maven { url "https://maven.aliyun.com/nexus/content/repositories/jcenter" }
			mavenCentral()
			maven { url "https://repo.spring.io/libs-spring-framework-build" }
			maven { url "https://repo.spring.io/milestone" }
			maven { url "https://repo.spring.io/plugins-release" }
		}

史上最全的idea编译Spring5源码
在buildSrc 目录下 build.gradle增加配置

maven { url "https://maven.aliyun.com/nexus/content/groups/public" }
maven { url "https://maven.aliyun.com/nexus/content/repositories/jcenter" }

史上最全的idea编译Spring5源码

配置 project sdk

史上最全的idea编译Spring5源码
史上最全的idea编译Spring5源码
史上最全的idea编译Spring5源码

更新下载仓库依赖

史上最全的idea编译Spring5源码
等待中,可以抽根烟喽。漫长的等待
史上最全的idea编译Spring5源码
我用了15分钟。。。。
史上最全的idea编译Spring5源码
等待idea建立索引
史上最全的idea编译Spring5源码

1 编译 spring-oxm 选择 complierTestjava

史上最全的idea编译Spring5源码
史上最全的idea编译Spring5源码
完成
史上最全的idea编译Spring5源码

2 编译 spring-core 选择 complierTestjava

史上最全的idea编译Spring5源码
完成
史上最全的idea编译Spring5源码

3 执行 根目录 build方法

史上最全的idea编译Spring5源码
编译完成
史上最全的idea编译Spring5源码

测试

1 新建moudle 选择 gradle

史上最全的idea编译Spring5源码
史上最全的idea编译Spring5源码
史上最全的idea编译Spring5源码

2.点击 finish 后,会自动帮忙我们创建模块

史上最全的idea编译Spring5源码

3. 修改 build.gradle文件 ,添加依赖,并重新import

史上最全的idea编译Spring5源码

//添加完要构建下,否则无法在代码中引入相关功能
    compile(project(":spring-context"))
    compile(project(":spring-beans"))
    compile(project(":spring-core"))
    compile(project(":spring-aop"))

史上最全的idea编译Spring5源码

史上最全的idea编译Spring5源码
史上最全的idea编译Spring5源码

总结

一切好不容易总算圆满完成,感谢大家的一键三连,转发收藏点赞。如有问题,请留言…

本文地址:https://blog.csdn.net/hu15081398237/article/details/110913248