Gradle编译Spring的源码
1、下载安装插件
下载安装gradle和spring5的源码包,并且配置好gradle的环境、
2、导入项目
选择项目的gradle文件进行导入:
配置好自动导包和本地的gradle
点击确定之后,会进入编译,一定会报错,我们拭目以待!
错误一:提示spring-beans.gradle错误。解决方案:直接注释掉该句话。如图所示。
这里会进行大量的jar的下载,请耐心等待。
编译完成后,对oxm和beans和context进行依次的编译。compileTestJava
错误二:提示beans模块出现循环依赖
解决方案:在spring-beans.gradle后面加这样几句代码:
def deps = compileGroovy.taskDependencies.immutableValues + compileGroovy.taskDependencies.mutableValues
compileGroovy.dependsOn = deps - "compileJava"
compileKotlin.dependsOn(compileGroovy)
compileKotlin.classpath += files(compileGroovy.destinationDir)
效果图如下图;
我们继续进行编译、初次编译时间可能会较长,请耐心等待。(三个模块都需要按顺序进行编译)
编译完成我们可以创建项目(gradle项目)了:
项目创建完成之后添加spring-context的依赖;
dependencies {
compile(project(":spring-context"))
testCompile group: 'junit', name: 'junit', version: '4.12'
}
这时候我们写代码进行测试:
@Configuration
public class MainConfig {
}
public class MainTest {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MainConfig.class);
System.out.println(context);
}
}
点击运行!
错误三:显示找不到instrument包
解决方案:在我们自己的模块中添加spring-instrument包的依赖:
compile(project(":spring-instrument"))
最终的依赖:
dependencies {
compile(project(":spring-context"))
compile(project(":spring-instrument"))
testCompile group: 'junit', name: 'junit', version: '4.12'
}
再次运行代码:成功!!
到此为止,gradle编译spring源码结束!