Spring Boot源码编译

962 阅读1分钟

一、环境准备

  • JDK 1.8
  • Spring Boot 2.7.12
  • Gradle 7.6.1
    为什么要选择这样的版本?因为不同版本需要的JDK版本不同,我日常开发是JDK1.8。关于版本匹配问题,请参考我的这篇笔记:Spring Boot环境信息

选择 Gradle 的版本还应该遵循一个原则: 在spring-boot-2.7.12/gradle/wrapper目录下的 gradle-wrapper.properties 文件会说明当前工程使用的 Gradle的版本

distributionUrl=https://services.gradle.org/distributions/gradle-7.6.1-bin.zip

二、下载源码和编译工具

1. Spring Boot

image.png

下载后本地解压到IDEA的项目空间路径下:

image.png

2. 下载 Gradle

在 Gradle 官网下载很慢,可以去阿里云上下载:mirrors.aliyun.com/macports/di…

image.png

三、IDEA打开源码工程

image.png 在IDEA中配置JDK1.8

1. 添加阿里云仓库

阿里云仓库 developer.aliyun.com/mvn/guide

maven { url 'https://maven.aliyun.com/repository/public/' }
  • buildSrc目录的 build.gradlesettings.gradle 文件修改

image.png

image.png

  • 根目录的 build.gradlesettings.gradle 文件修改

image.png

image.png

2. 修改gradle-wrapper.properties 文件

image.png 将远程的 gradle 替换成本地,如下所示:

# distributionUrl=https://services.gradle.org/distributions/gradle-7.6.1-bin.zip
distributionUrl=file://////Users/shifeifei/Software/gradle-7.6-bin.zip

3. 执行编译命令

./gradlew build

在执行这个命令会提示一个错误:fatal: not a git repository (or any of the parent directories): .git 详细信息如下:

fatal: not a git repository (or any of the parent directories): .git
Build scan background action failed.
org.gradle.process.internal.ExecException: Process 'command 'git'' finished with non-zero exit value 128
        at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:415)
        at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:38)
        at org.gradle.process.internal.DefaultExecActionFactory.exec(DefaultExecActionFactory.java:202)
        at io.spring.ge.conventions.gradle.WorkingDirectoryProcessOperations.exec(WorkingDirectoryProcessOperations.java:45)
        at io.spring.ge.conventions.gradle.ProcessOperationsProcessRunner.run(ProcessOperationsProcessRunner.java:40)
        at io.spring.ge.conventions.gradle.BuildScanConventions.run(BuildScanConventions.java:195)
        at io.spring.ge.conventions.gradle.BuildScanConventions.addGitMetadata(BuildScanConventions.java:139)
        at com.gradle.enterprise.gradleplugin.internal.extension.a$4.run(SourceFile:172)
        at com.gradle.scan.plugin.internal.b.a.b(SourceFile:25)

报这个错的原因是:项目没有远程仓库关联,关联一下再编译

git init
git remote add origin