如何构建 Spring Cloud Contract

在 Windows 上克隆存储库

在 Windows 上克隆此项目时,git 存储库中的某些文件可能会超过 Windows 最大文件路径限制(255 个字符),这可能会 导致存储库签出错误(可能部分)。spring-doc.cn

要解决此问题,您可以为 Spring Cloud Contract 存储库设置属性或克隆该属性。core.longPathstruespring-doc.cn

要将属性设置为 ,您有三个选项:core.longPathstruespring-doc.cn

  • 为计算机的所有用户更改它(这样做需要管理员权限):spring-doc.cn

git config --system core.longPaths true
git clone https://github.com/spring-cloud/spring-cloud-contract.git
  • 为当前用户更改它(无需管理权限):spring-doc.cn

git config --global core.longPaths true
git clone https://github.com/spring-cloud/spring-cloud-contract.git
  • 仅更改此存储库(管理权限取决于存储库要克隆到的位置):spring-doc.cn

git clone -c core.longPaths=true https://github.com/spring-cloud/spring-cloud-contract.git
您需要拥有所有必要的 Groovy 插件 为您的 IDE 安装以正确解析源代码。例如,在 Intellij IDEA,同时具有 Eclipse Groovy 编译器插件和 GMavenPlus Intellij 插件会生成正确导入的项目。
Spring Cloud Contract 构建 Docker 镜像。记得 已安装 Docker。
如果要在脱机模式下运行构建,则必须安装 Maven 3.5.2+。

项目结构

下面的清单显示了 Spring Cloud Contract 文件夹结构:spring-doc.cn

├── config
├── docker
├── samples
├── scripts
├── specs
├── spring-cloud-contract-dependencies
├── spring-cloud-contract-shade
├── spring-cloud-contract-starters
├── spring-cloud-contract-stub-runner
├── spring-cloud-contract-stub-runner-boot
├── spring-cloud-contract-tools
├── spring-cloud-contract-verifier
├── spring-cloud-contract-wiremock
└── tests

以下列表描述了项目结构中的每个顶级文件夹:spring-doc.cn

  • config:文件夹包含 Spring Cloud Release Tools 自动发布过程的设置spring-doc.cn

  • docker:文件夹包含 docker 映像spring-doc.cn

  • scripts:包含用于使用 Maven、Gradle 构建和测试的脚本Spring Cloud Contractspring-doc.cn

  • specs:包含合约 DSL 的规范。spring-doc.cn

  • spring-cloud-contract-dependencies:包含 Spring Cloud Contract BOMspring-doc.cn

  • spring-cloud-contract-shade:插件使用的阴影依赖项spring-doc.cn

  • spring-cloud-contract-starters:包含 Spring Cloud Contract Startersspring-doc.cn

  • spring-cloud-contract-spec:包含规范模块(包含 Contract 的概念)spring-doc.cn

  • spring-cloud-contract-stub-runner:包含 Stub Runner 相关模块spring-doc.cn

  • spring-cloud-contract-stub-runner-boot:包含 Stub Runner Boot 应用程序spring-doc.cn

  • spring-cloud-contract-tools:用于Spring Cloud Contract Verifierspring-doc.cn

  • spring-cloud-contract-verifier:功能的核心Spring Cloud Contract Verifierspring-doc.cn

  • spring-cloud-contract-wiremock:所有 WireMock 相关功能spring-doc.cn

  • tests:针对不同消息传递技术的集成测试spring-doc.cn

命令

要与 Maven 插件一起构建核心功能,您可以运行以下命令 命令:spring-doc.cn

./mvnw clean install -P integration

调用该函数会构建核心、Maven 插件和 Gradle 插件。spring-doc.cn

要仅构建 Gradle 插件,您可以运行以下命令:spring-doc.cn

cd spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin
./gradlew clean build

有用的脚本

我们提供了几个有用的脚本来构建项目。spring-doc.cn

要并行构建项目(默认情况下,它使用四个内核,但您可以更改它), 运行以下命令:spring-doc.cn

./scripts/parallelBuild.sh

要使用 8 个 8 核,请运行以下命令:spring-doc.cn

CORES=8 ./scripts/parallelBuild.sh

要在没有任何集成测试的情况下构建项目(默认情况下,它使用一个内核),请运行 以下命令:spring-doc.cn

./scripts/noIntegration.sh

要使用 8 个内核,请运行以下命令:spring-doc.cn

CORES=8 ./scripts/noIntegration.sh

要生成文档(针对根项目和 maven 插件),请运行 以下命令:spring-doc.cn

./scripts/generateDocs.sh