本文档涵盖了 Spring Framework 的构建系统、开发基础设施和贡献指南。它解释了基于 Gradle 的多模块构建结构、自定义构建插件、开发规范以及项目的构建、测试和贡献过程。
有关整体项目架构和模块关系的信息,请参阅架构概述。有关特定 Spring Framework 组件的详细信息,请参阅核心组件。
Spring Framework 使用了一套精密的基于 Gradle 的构建系统,该系统管理着 26 个以上的模块,并通过构建插件和规范提供了广泛的自定义功能。
来源: build.gradle1-99 settings.gradle1-53 gradle.properties1-11
构建系统定义了两种主要的项目类别:模块项目(以spring-开头)和框架项目(以framework-开头)。
来源: build.gradle13-15 settings.gradle5-31
buildSrc 目录包含自定义 Gradle 插件和规范,这些插件和规范用于标准化所有 Spring 模块的构建过程。
来源: buildSrc/src/main/java/org/springframework/build/ConventionsPlugin.java38-50 buildSrc/build.gradle34-61
构建系统在所有模块中强制执行一致的编译设置
| 设置 | 值 | 目的 |
|---|---|---|
| JVM 工具链 | Bellsoft JDK 24 | 一致的构建环境 |
| 字节码目标 | Java 17 | 运行时兼容性 |
| 编译器参数 | -parameters, -Xlint:*, -Werror | 代码质量强制执行 |
| 编码 | UTF-8 | 字符编码 |
来源: buildSrc/src/main/java/org/springframework/build/JavaConventions.java49-74
测试规范提供了全面的测试支持,包括重试功能和运行时提示测试。
来源: buildSrc/src/main/java/org/springframework/build/TestConventions.java55-75 buildSrc/src/main/java/org/springframework/build/hint/RuntimeHintsAgentPlugin.java49-70
每个 Spring 模块都遵循一个标准化配置模式,该模式在gradle/spring-module.gradle中定义。
来源: gradle/spring-module.gradle1-127 gradle/publications.gradle1-64
该框架采用了多层依赖管理方法
| 组件 | 目的 | 位置 |
|---|---|---|
framework-platform | 外部依赖版本 | framework-platform/framework-platform.gradle9-151 |
framework-bom | Spring 模块版本 | framework-bom/framework-bom.gradle8-14 |
依赖管理 | 版本强制执行 | build.gradle39-51 |
项目通过 Gradle wrapper 提供标准化构建命令。
构建通过多种机制强制执行代码质量
来源: buildSrc/src/main/java/org/springframework/build/CheckstyleConventions.java39-79
该项目遵循在CONTRIBUTING.md中概述的特定贡献标准。
| 方面 | 要求 |
|---|---|
| DCO | 需要 Signed-off-by 尾注 |
| 提交格式 | 55 字符主题,72 字符正文 |
| 分支 | 始终以main分支为目标 |
| 测试 | 为新功能包含测试 |
| 文档 | 更新相关文档 |
适用于需要特定 Java 版本实现的模块
来源: buildSrc/src/main/java/org/springframework/build/multirelease/MultiReleaseExtension.java62-158 spring-core/spring-core.gradle13-15
构建系统包含针对 GraalVM 原生镜像兼容性的专门测试。
来源: buildSrc/src/main/java/org/springframework/build/hint/RuntimeHintsAgentPlugin.java56-67 buildSrc/README.md56-89