赞
踩
目录
IntelliJ IDEA 2020.3.2 (Ultimate Edition)
Java version "11.0.10" 2021-01-19 LTS
Gradle 6.5
Spring 5.3.0-SNAPSHOT
(1) 下载Gradle
官网:https://gradle.org/releases/
推荐使用gradle4以上的版本,否则不知道是否会有别的兼容性问题。我这边是按照Spring5源码gradle-wrapper.properties中依赖的gradle,选了个相近的版本,gradle-6.5。
(2) 配置环境变量
gradle安装比较简单,将gradle目录配置到环境变量即可。
(3) 检测gradle环境
通过gradle -v 检测gradle是否正确安装。
- C:\Users\tracy.chen>gradle -v
- ------------------------------------------------------------
- Gradle 6.5
- ------------------------------------------------------------
-
- Build time: 2020-06-02 20:46:21 UTC
- Revision: a27f41e4ae5e8a41ab9b19f8dd6d86d7b384dad4
-
- Kotlin: 1.3.72
- Groovy: 2.5.11
- Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
- JVM: 1.8.0_92 (Oracle Corporation 25.92-b14)
- OS: Windows 10 10.0 amd64
(1) Idea中选择[File]-[New]-[Project from Existing Sources],将源码导入IDEA;
(2) 添加阿里云镜像仓库
默认使用的是spring的仓库,由于网络限制,建议再build.gradle中配置国内的阿里提供的镜像仓库下载,下载速度会快很多。
- repositories {
- mavenCentral()
- maven { url "https://repo.spring.io/libs-spring-framework-build" }
- maven { url "https://oss.jfrog.org/artifactory/oss-snapshot-local" }
- maven {url 'https://maven.aliyun.com/nexus/content/groups/public/'} // 加上阿里云仓库
- maven {url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'} // 加上阿里云仓库
- }
(3) 修改依赖的gradle版本
gradle-wrapper.properties中描述了依赖的gradle版本,如果跟本地不一致,建议修改成一致的,防止出现意外的兼容性问题。
同时,如果本地安装的Gradle版本和Spring源码中依赖的版本相差太多,也建议本地升级到差不多的版本,防止出现意外的兼容性问题。
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
(4) 注释enterprise依赖
将io.spring.gradle-enterprise-conventions这个插件注释掉,否则编译阶段可能会报错。
这行代码可能在build.gradle文件中,也可能在settings.gradle文件中,我的是在settings.gradle中。
//id "io.spring.gradle-enterprise-conventions" version "0.0.2"
使用gradle进行编译,我这边大概花了2个小时才完成编译,要下载大量的jar,最后当你看到BUILD SUCCESSFUL的时候,恭喜你终于成功了。
- > Task :buildSrc:compileJava UP-TO-DATE
- > Task :buildSrc:compileGroovy NO-SOURCE
- > Task :buildSrc:pluginDescriptors UP-TO-DATE
- > Task :buildSrc:processResources UP-TO-DATE
- > Task :buildSrc:classes UP-TO-DATE
- > Task :buildSrc:jar UP-TO-DATE
- > Task :buildSrc:generateSourceRoots UP-TO-DATE
- > Task :buildSrc:assemble UP-TO-DATE
- > Task :buildSrc:pluginUnderTestMetadata UP-TO-DATE
- > Task :buildSrc:compileTestJava NO-SOURCE
- > Task :buildSrc:compileTestGroovy NO-SOURCE
- > Task :buildSrc:processTestResources NO-SOURCE
- > Task :buildSrc:testClasses UP-TO-DATE
- > Task :buildSrc:test SKIPPED
- > Task :buildSrc:validatePlugins UP-TO-DATE
- > Task :buildSrc:check SKIPPED
- > Task :buildSrc:build UP-TO-DATE
-
- Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
- Use '--warning-mode all' to show the individual deprecation warnings.
- See https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings
-
- BUILD SUCCESSFUL in 44s
-
- BUILD SUCCESSFUL in 374ms

(1) 选择IDEA - [Build Project]
如果直接编译成功,恭喜你,绝对哪里不正常。
如果出现[Kotlin: warnings found and -Werror specified]这个错误,那说明你基本上快搞定了。
(2) 编译spring-core
打开IDEA右侧Gradle标签页,双击[spring-core]-[Tasks]-[other]-[cglibRepackJar],看到[BUILD SUCCESSFUL]才说明成功;
然后双击[spring-core]-[other]-[objenesisRepackJar],直到[BUILD SUCCESSFUL];
然后双击[spring-core]-[other]-[compileTestJava],直到[BUILD SUCCESSFUL];
最后双击[spring-core]-[build]-[build],直到[BUILD SUCCESSFUL];
(3) 编译spring-framework
双击[spring]-[Tasks]-[build]-[build]进行编译,看到Build成功。
- 13:24:56: Executing task 'build'...
-
- > Task :buildSrc:compileJava UP-TO-DATE
- > Task :buildSrc:compileGroovy NO-SOURCE
- > Task :buildSrc:pluginDescriptors UP-TO-DATE
- > Task :buildSrc:processResources UP-TO-DATE
- > Task :buildSrc:classes UP-TO-DATE
- > Task :buildSrc:jar UP-TO-DATE
- > Task :buildSrc:assemble UP-TO-DATE
- > Task :buildSrc:pluginUnderTestMetadata UP-TO-DATE
- > Task :buildSrc:compileTestJava NO-SOURCE
- > Task :buildSrc:compileTestGroovy NO-SOURCE
- > Task :buildSrc:processTestResources NO-SOURCE
- > Task :buildSrc:testClasses UP-TO-DATE
- > Task :buildSrc:test NO-SOURCE
- > Task :buildSrc:validatePlugins UP-TO-DATE
- > Task :buildSrc:check UP-TO-DATE
- > Task :buildSrc:build UP-TO-DATE
- > Task :framework-bom:assemble UP-TO-DATE
- > Task :integration-tests:compileJava NO-SOURCE
- > Task :framework-bom:check UP-TO-DATE
- > Task :framework-bom:build UP-TO-DATE
- > Task :integration-tests:processResources NO-SOURCE
- > Task :integration-tests:classes UP-TO-DATE
- > Task :compileKotlin NO-SOURCE
- > Task :spring-core:cglibRepackJar UP-TO-DATE
- > Task :compileJava NO-SOURCE
- > Task :compileGroovy NO-SOURCE
- > Task :processResources NO-SOURCE
- > Task :classes UP-TO-DATE
- > Task :inspectClassesForKotlinIC UP-TO-DATE
- > Task :spring-core:objenesisRepackJar UP-TO-DATE
- > Task :jar UP-TO-DATE
- > Task :assemble UP-TO-DATE
- > Task :checkstyleMain NO-SOURCE
- > Task :integration-tests:jar UP-TO-DATE
- > Task :integration-tests:assemble UP-TO-DATE
- > Task :integration-tests:checkstyleMain NO-SOURCE
- > Task :integration-tests:compileTestFixturesJava NO-SOURCE
- > Task :spring-core:processResources UP-TO-DATE
- > Task :spring-beans:processResources UP-TO-DATE
- > Task :spring-aop:processResources UP-TO-DATE
- > Task :spring-expression:processResources UP-TO-DATE
- > Task :spring-jcl:compileJava UP-TO-DATE
- > Task :spring-jcl:processResources UP-TO-DATE
- > Task :spring-jcl:classes UP-TO-DATE
- > Task :kotlin-coroutines:compileKotlin UP-TO-DATE
- > Task :spring-jcl:jar UP-TO-DATE
- > Task :kotlin-coroutines:compileJava NO-SOURCE
- > Task :kotlin-coroutines:processResources NO-SOURCE
- > Task :kotlin-coroutines:classes UP-TO-DATE
- > Task :kotlin-coroutines:inspectClassesForKotlinIC UP-TO-DATE
- > Task :kotlin-coroutines:jar UP-TO-DATE
- > Task :spring-context:processResources UP-TO-DATE
- > Task :spring-instrument:compileJava UP-TO-DATE
- > Task :spring-instrument:processResources NO-SOURCE
- > Task :spring-instrument:classes UP-TO-DATE
- > Task :spring-tx:processResources UP-TO-DATE
- > Task :spring-instrument:jar UP-TO-DATE
- > Task :spring-oxm:processResources UP-TO-DATE
- > Task :spring-jdbc:processResources UP-TO-DATE
- > Task :spring-orm:processResources NO-SOURCE
- > Task :spring-context-support:processResources UP-TO-DATE
- > Task :spring-web:processResources UP-TO-DATE
- > Task :spring-webmvc:processResources UP-TO-DATE
- > Task :spring-messaging:processResources NO-SOURCE
- > Task :spring-websocket:processResources UP-TO-DATE
- > Task :spring-webflux:processResources UP-TO-DATE
- > Task :spring-test:processResources UP-TO-DATE
- > Task :spring-aop:processTestFixturesResources NO-SOURCE
- > Task :spring-beans:processTestFixturesResources NO-SOURCE
- > Task :spring-tx:processTestFixturesResources NO-SOURCE
- > Task :kotlin-coroutines:assemble UP-TO-DATE
- > Task :integration-tests:processTestResources UP-TO-DATE
- > Task :integration-tests:processTestFixturesResources NO-SOURCE
- > Task :integration-tests:testFixturesClasses UP-TO-DATE
- > Task :integration-tests:checkstyleTestFixtures NO-SOURCE
- > Task :kotlin-coroutines:checkstyleMain NO-SOURCE
- > Task :kotlin-coroutines:compileTestFixturesKotlin NO-SOURCE
- > Task :kotlin-coroutines:compileTestFixturesJava NO-SOURCE
- > Task :kotlin-coroutines:compileTestKotlin NO-SOURCE
- > Task :integration-tests:testFixturesJar UP-TO-DATE
- > Task :kotlin-coroutines:compileTestJava NO-SOURCE
- > Task :kotlin-coroutines:processTestResources NO-SOURCE
- > Task :kotlin-coroutines:testClasses UP-TO-DATE
- > Task :kotlin-coroutines:checkstyleTest NO-SOURCE
- > Task :kotlin-coroutines:processTestFixturesResources NO-SOURCE
- > Task :kotlin-coroutines:testFixturesClasses UP-TO-DATE
- > Task :spring-aop:processTestResources UP-TO-DATE
- > Task :spring-aop:processJmhResources NO-SOURCE
- > Task :kotlin-corout

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。