如何构建 Spring Cloud Contract
在 Windows 上克隆存储库
在 Windows 上克隆此项目时,git 存储库中的某些文件可能会超过 Windows 最大文件路径限制(255 个字符),这可能会 导致存储库签出错误(可能部分)。
要解决此问题,您可以为 Spring Cloud Contract 存储库设置属性或克隆该属性。core.longPaths
true
要将属性设置为 ,您有三个选项:core.longPaths
true
-
为计算机的所有用户更改它(这样做需要管理员权限):
git config --system core.longPaths true
git clone https://github.com/spring-cloud/spring-cloud-contract.git
-
为当前用户更改它(无需管理权限):
git config --global core.longPaths true
git clone https://github.com/spring-cloud/spring-cloud-contract.git
-
仅更改此存储库(管理权限取决于存储库要克隆到的位置):
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 文件夹结构:
├── 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
以下列表描述了项目结构中的每个顶级文件夹:
-
config
:文件夹包含 Spring Cloud Release Tools 自动发布过程的设置 -
docker
:文件夹包含 docker 映像 -
scripts
:包含用于使用 Maven、Gradle 构建和测试的脚本Spring Cloud Contract
-
specs
:包含合约 DSL 的规范。 -
spring-cloud-contract-dependencies
:包含 Spring Cloud Contract BOM -
spring-cloud-contract-shade
:插件使用的阴影依赖项 -
spring-cloud-contract-starters
:包含 Spring Cloud Contract Starters -
spring-cloud-contract-spec
:包含规范模块(包含 Contract 的概念) -
spring-cloud-contract-stub-runner
:包含 Stub Runner 相关模块 -
spring-cloud-contract-stub-runner-boot
:包含 Stub Runner Boot 应用程序 -
spring-cloud-contract-tools
:用于Spring Cloud Contract Verifier
-
spring-cloud-contract-verifier
:功能的核心Spring Cloud Contract Verifier
-
spring-cloud-contract-wiremock
:所有 WireMock 相关功能 -
tests
:针对不同消息传递技术的集成测试
命令
要与 Maven 插件一起构建核心功能,您可以运行以下命令 命令:
./mvnw clean install -P integration
调用该函数会构建核心、Maven 插件和 Gradle 插件。
要仅构建 Gradle 插件,您可以运行以下命令:
cd spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin
./gradlew clean build
有用的脚本
我们提供了几个有用的脚本来构建项目。
要并行构建项目(默认情况下,它使用四个内核,但您可以更改它), 运行以下命令:
./scripts/parallelBuild.sh
要使用 8 个 8 核,请运行以下命令:
CORES=8 ./scripts/parallelBuild.sh
要在没有任何集成测试的情况下构建项目(默认情况下,它使用一个内核),请运行 以下命令:
./scripts/noIntegration.sh
要使用 8 个内核,请运行以下命令:
CORES=8 ./scripts/noIntegration.sh
要生成文档(针对根项目和 maven 插件),请运行 以下命令:
./scripts/generateDocs.sh