如何構建 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:包含合同 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:包含規範模組(包含合同概念)

  • 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