如何构建春云合约
在Windows上克隆仓库
在Windows上克隆该项目时,git仓库中的某些文件可能超过Windows最大文件路径255字符限制,这可能导致 结果是一个错误(很可能部分)借出的仓库。
要解决这个问题,你可以设置core.longPaths归属为true或者克隆 Spring Cloud Contract 仓库。
要设置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
以下列表描述了项目结构中的每个顶层文件夹:
-
配置: 文件夹包含 Spring Cloud Release Tools 自动发布流程的设置 -
Jetty工人: 文件夹包含 docker 镜像 -
脚本: 包含用于构建和测试的脚本春云合约与梅文、Gradle合作 -
规格: 包含合同DSL的规范。 -
Spring-Cloud-Contract-dependencis:包含春云合约BOM -
春云-契约-阴影: 插件使用的阴影依赖 -
春云合同起始:包含春云合约起始角色 -
Spring-cloud-contract-spec: 包含规范模块(包含合同概念) -
春云合同存根跑者: 包含与 Stub Runner 相关的模块 -
弹-云-合同-存根-跑者-启动: 包含 Stub Runner Boot 应用 -
Spring-cloud-contract-tools: Gradle 和 Maven 插件春云合约验证器 -
Spring-Cloud-Contract-Verifier:核心春云合约验证器功能性 -
Spring-cloud-contract-wiremock: 所有与WireMock相关的功能 -
测试:针对不同消息技术的集成测试
命令
要与 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核,请执行以下命令:
CORES=8 ./scripts/parallelBuild.sh
要在不使用任何集成测试的情况下构建项目(默认使用一个核心),运行 以下命令:
./scripts/noIntegration.sh
要使用八个核心,请执行以下命令:
CORES=8 ./scripts/noIntegration.sh
要生成文档(包括根项目和Maven插件),运行 以下命令:
./scripts/generateDocs.sh