如何構建 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