Spring源码阅读 (一):源码编译

1. 去github上下载一个springframework的源码包

地址;https://github.com/spring-projects/spring-framework
选择5.0.x分支

2. 下载 gradle

http://downloads.gradle.org/distributions/gradle-4.9-bin.zip
解压,配置 GRADLE_HOME 和 Path选择5.0以下的版本

3. 用Idea打开项目 ,对Idea的gradle进行配置 不然会不兼容。

Spring源码阅读 (一):源码编译_第1张图片

4.当项目构建完成之后,便可开始编译。

先
gradlew :spring-oxm:compileTestJava  
然后
gradlew :spring-core:compileTestJava  


导入项目遇见问题:

1.No such property: immutableValues for class: org.gradle.api.internal.tasks.DefaultTaskDependency

修改:spring-beans.gradle

注释掉这两行代码
//def deps = compileGroovy.taskDependencies.immutableValues + compileGroovy.taskDependencies.mutableValues
//compileGroovy.dependsOn = deps - 'compileJava'

2.Could not find method useJUnitPlatform()

注释:spring-test.gradle中这行代码
//  useJUnitPlatform {
//    includeEngines 'junit-jupiter'
//    excludeTags 'failing-test-case'
// }

3.kotlin编译导致的问题

org.gradle.api.CircularReferenceException: Circular dependency between the following tasks:
:spring-beans:compileGroovy
\--- :spring-beans:compileJava
     \--- :spring-beans:compileKotlin
          \--- :spring-beans:compileGroovy (*)

编译github的最新spring源码发现该问题,主要是kotlin版本不一致导致的
Spring源码阅读 (一):源码编译_第2张图片
Spring源码阅读 (一):源码编译_第3张图片

重点: 将问题1的注释去掉

4.Aspects模块代码编译出错

https://jira.spring.io/browse/SPR-12103
https://youtrack.jetbrains.com/issue/IDEA-64446

你可能感兴趣的:(javaee)