Springframework源码构建

Springframework源码构建

源码下载

源码的下载 我们国内首推gitee 我可以 直接在gitee直接下载或者以zip包的形式的但是 这样不灵活在 不能允许我们 修改
然后我们可以克隆 github 上的源码到我们本地仓库 gitee 或者阿里的
在这里插入图片描述
都可以
1 导入代码库在这里插入图片描述
2 url导入 1) 选择 URL 导入 2) 将github 上的地址 粘贴上去 然后点击确定等待 导入
在这里插入图片描述
3 克隆 https 将源码放入本地

环境准备

准备 gradle 这玩意真tm难用卡了我 一天多 重要的事情 说三遍变更新的你 idea 到2020 或者2021 2019 就别弄了 坑太多了有其弄spring 5
首先去 官网 下载一个 gradle 版本的就选 6.8.2把 地址我粘出来 gradle 地址 选择 这个版本
然后像 配置jdk一样配置环境 变量 最后需要添加一个 GRADLE_USER_HOME 一般名称起名字 为 .gradle 的文件夹 这个 就跟maven 的本地中央仓库一样

以上都准备好了 后再 gradle 的 根目录 在这里插入图片描述
init.d 文件夹进去 后创建一个 init.gradle 的文件 其实只要后缀为gradle 前面名字是啥不重要 这个配置 主要的指向国内镜像 毕竟 这个东西要下载很大的jar 包

gradle.projectsLoaded {
    rootProject.allprojects {
        buildscript {
            repositories {
                def JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter'
                def GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
                def NEXUS_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
                all { ArtifactRepository repo ->
                    if (repo instanceof MavenArtifactRepository) {
                        def url = repo.url.toString()
                        if (url.startsWith('https://jcenter.bintray.com/')) {
                            project.logger.lifecycle "Repository ${repo.url} replaced by $JCENTER_URL."
                            println("buildscript ${repo.url} replaced by $JCENTER_URL.")
                            remove repo
                        }
                        else if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
                            project.logger.lifecycle "Repository ${repo.url} replaced by $GOOGLE_URL."
                            println("buildscript ${repo.url} replaced by $GOOGLE_URL.")
                            remove repo
                        }
                        else if (url.startsWith('https://repo1.maven.org/maven2')) {
                            project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
                            println("buildscript ${repo.url} replaced by $REPOSITORY_URL.")
                            remove repo
                        }
                    }
                }
                jcenter {
                    url JCENTER_URL
                }
                google {
                    url GOOGLE_URL
                }
                maven {
                    url NEXUS_URL
                }
            }
        }
        repositories {
            def JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter'
            def GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
            def NEXUS_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
            all { ArtifactRepository repo ->
                if (repo instanceof MavenArtifactRepository) {
                    def url = repo.url.toString()
                    if (url.startsWith('https://jcenter.bintray.com/')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $JCENTER_URL."
                        println("buildscript ${repo.url} replaced by $JCENTER_URL.")
                        remove repo
                    }
                    else if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $GOOGLE_URL."
                        println("buildscript ${repo.url} replaced by $GOOGLE_URL.")
                        remove repo
                    }
                    else if (url.startsWith('https://repo1.maven.org/maven2')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
                        println("buildscript ${repo.url} replaced by $REPOSITORY_URL.")
                        remove repo
                    }
                }
            }
            jcenter {
                url JCENTER_URL
            }
            google {
                url GOOGLE_URL
            }
            maven {
                url NEXUS_URL
            }
        }
    }
}

以上做完 环境的东西就准备好了

编译环境

编译是最坑的 这里如果想要编译不出什么问题 最好将JDK 升级为15 去下载OpenJdk 15 就可以 然后将gradle 编译指定为15 版本要不然 aop 的编译过不了 OpenJDK 15 下载地址 如果找不到下载可以 点击
在这里插入图片描述
下载好解压 在C盘 可以不用配置环境变量 然后 在 idea file->ProjectStructrue->Project 设置
在这里插入图片描述
之后就等待 第一时间会很长 。这里 如果用2019 的小朋友 会有很多坑 所以我直接放弃了 如果长时间没有 构建成功可以考虑升级下idea 因为毕竟死磕 浪费时间 还有千万别在spring-test 下面创建自己的方法执行不了 需要kotlin 1.5.21 但我idea2021 最高支持到1.5.10 很恶心 就算自己下载 plugin 也不行 不兼容 乖乖自己 创建一个modle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值