前言

大部分平时使用的是maven构建 但是源码级别的用的是更加重量级的Gradle构建,本次学习源码,第一步就学到了很多的知识,加油!!!

源码下载地址

我选择是2.3.2.RELEASE,根据需要下载
springboot源码官方下载

项目构建工具Gradle下载地址

Gradle官方下载 也可以去这里下载 gradle下载 注意:如果是源码的哈,对兼容性不了解的哈 就是用源码推荐的Gradle版本,
如:spring-framework-5.2.8.RELEASE源码工程
就在这里

spring-framework-5.2.8.RELEASE\gradle\wrapper\gradle-wrapper.properties

spring boot编译报错 springboot源码编译_spring boot编译报错


解压到目录,这里一定要解压,

虽然引入的是zip,但是我发现如果不解压,idea会构建时会再去下载一个同样版本Gradle。[观察启动构建输出就知道了]

这里更改的目的:防止每次构建都去下载Gradle。

设置环境变量

解压到目录,这里一定要解压,
虽然引入的是zip,但是我发现如果不解压,idea会构建时会再去下载。

GRADLE_HOME=D:\gradle\gradle-3.4.1

PATH=%GRADLE_HOME%\bin

gradle -v

spring boot编译报错 springboot源码编译_spring_02

修改默认缓存目录

修改Gradle默认缓存目录可使用命令gradle -g 目录路径,例如gradle -g C:\gradle.gradle

spring boot编译报错 springboot源码编译_spring boot_03

修改全局默认仓库,下载源地址修改

SpringBoot的gradle脚本比Spring更好一些,只需要修改release目录下的settings.gradle和build.gradle。
在2个文件里面搜索mavenCentral,加入阿里云源,感谢阿里。这个地址可能变,自己在下面链接查下最好。

阿里云云效 Maven仓库官方说明

spring boot编译报错 springboot源码编译_java_04

)

maven { url 'https://maven.aliyun.com/repository/central'}
maven { url 'https://maven.aliyun.com/repository/public' }

build.gradle

spring boot编译报错 springboot源码编译_spring_05

settings.gradle

spring boot编译报错 springboot源码编译_spring_06

修改gradle离线下载配置

distributionUrl=file:///E:/FreeInstall/gradle-7.3.1-all.zip

可以去这里下载 gradle下载

spring boot编译报错 springboot源码编译_spring boot_07

)

设置idea的参数

jdk参数

spring boot编译报错 springboot源码编译_gradle_08

)

spring boot编译报错 springboot源码编译_spring boot_09

)

gradle参数

spring boot编译报错 springboot源码编译_gradle_10

)

问题1 Task :buildSrc:checkFormatMain FAILED

Task :buildSrc:checkFormatMain FAILED

Execution failed for task ‘:buildSrc:checkFormatMain’.

Formatting violations found in the following files:

spring boot编译报错 springboot源码编译_gradle_11

)

分析:文件类型错误

解决办法:修改 /buildSrc/build.gradle,注释掉即可。

plugins {
	id "java-gradle-plugin"
	//TODO 文件格式化问题可以注释此行
	//id "io.spring.javaformat" version "${javaFormatVersion}"
	id "checkstyle"
}

问题2 io.spring.gradle-enterprise-conventions 找不到问题

spring boot编译报错 springboot源码编译_spring boot_12


解决办法:

修改主目录下 setting.gradle ,注释掉即可。

plugins {
   id "com.gradle.enterprise" version "3.3.3"
// id "io.spring.gradle-enterprise-conventions" version "0.0.3"
}

spring boot编译报错 springboot源码编译_java_13

问题3 Task :buildSrc:test FAILED

spring boot编译报错 springboot源码编译_spring boot编译报错_14

从错误提示入手,拷贝这一段地址在浏览器打开,如下图所示,是一段测试报告。

spring boot编译报错 springboot源码编译_gradle_15


错误分析:org.opentest4j.AssertionFailedError

分析:我目前是spring-boot 应该依赖spring-framework工程 ,在spring-framework可看到aop源码,说明不属于boot本身的就全部依赖来搞定,要看aop源码 只有下载spring-framework工程才能看到。

spring boot编译报错 springboot源码编译_gradle_16

构建完成用时统计

重新构建,成功了!大约几分钟就可以把jar下载完成,前提是使用的最新的阿里云地址maven

如果使用的老的阿里云Maven就比较慢,大约30分钟-1小时之间。

所以赶紧用的新的吧!!

本次Gradle构建使用了7分39秒338毫秒

spring boot编译报错 springboot源码编译_gradle_17

最终完成效果

spring boot编译报错 springboot源码编译_spring boot_18

gradle构建jar默认存储位置

Windows系统默认下载到:C:\Users(用户名).gradle\caches\modules-2\files-2.1

spring boot编译报错 springboot源码编译_spring boot_19

源码smoke-test冒烟测试

在springboot-boot-tests模块下随便找一个spring-boot-smoke-test-hibernate52工程来进行冒烟测试,打开Hibernate52Application.java文件,直接执行main方法启动springboot,成功!