如何建置 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
您需要安裝所有必要的 Groovy 外掛程式,IDE 才能正確解析來源。例如,在 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 映像檔 -
samples
:資料夾包含測試範例以及用於建置文件的獨立範例 -
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 Starter -
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 外掛程式,並依正確順序在獨立範例上執行端對端測試(適用於 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