如何构建 Spring Cloud Contract
在 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
| 您需要为 IDE 安装所有必要的 Groovy 插件才能正确解析源。例如,在 Intellij IDEA 中,同时安装 Eclipse Groovy Compiler Plugin 和 GMavenPlus Intellij Plugin 可以正确导入项目。 |
| 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: 包含 Contract DSL 的规范。 -
spring-cloud-contract-dependencies: 包含 Spring Cloud Contract BOM -
spring-cloud-contract-shade: 插件使用的 shaded 依赖项 -
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的 Gradle 和 Maven 插件 -
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
要使用八个核心,请运行以下命令
CORES=8 ./scripts/parallelBuild.sh
要在没有任何集成测试的情况下构建项目(默认情况下,这使用一个核心),请运行以下命令
./scripts/noIntegration.sh
要使用八个核心,请运行以下命令
CORES=8 ./scripts/noIntegration.sh
要生成文档(包括根项目和 maven 插件),请运行以下命令
./scripts/generateDocs.sh