SpringCloud 我需要二進(jìn)制存儲嗎?我不能使用Git嗎?

2023-12-07 16:40 更新

在多語言的世界中,有些語言不使用二進(jìn)制存儲,例如Artifactory或Nexus。從Spring Cloud Contract版本2.0.0開始,我們提供了在SCM存儲庫中存儲合同和存根的機制。當(dāng)前唯一支持的SCM是Git。

存儲庫必須進(jìn)行以下設(shè)置(您可以在此處檢出):

.
└── META-INF
    └── com.example
        └── beer-api-producer-git
            └── 0.0.1-SNAPSHOT
                ├── contracts
                │   └── beer-api-consumer
                │       ├── messaging
                │       │   ├── shouldSendAcceptedVerification.groovy
                │       │   └── shouldSendRejectedVerification.groovy
                │       └── rest
                │           ├── shouldGrantABeerIfOldEnough.groovy
                │           └── shouldRejectABeerIfTooYoung.groovy
                └── mappings
                    └── beer-api-consumer
                        └── rest
                            ├── shouldGrantABeerIfOldEnough.json
                            └── shouldRejectABeerIfTooYoung.json

META-INF文件夾下:

  • 我們通過groupId(例如,com.example)對應(yīng)用程序進(jìn)行分組
  • 那么每個應(yīng)用程序都通過artifactId(例如beer-api-producer-git)表示
  • 接下來,是應(yīng)用程序的版本(例如0.0.1-SNAPSHOT)。從Spring Cloud Contract版本2.1.0開始,您可以指定以下版本(假設(shè)您的版本遵循語義版本)

    • +latest-查找存根的最新版本(假設(shè)快照始終是給定修訂版本的最新工件)。這意味著:

      • 如果您有1.0.0.RELEASE2.0.0.BUILD-SNAPSHOT2.0.0.RELEASE版本,我們將假定最新版本為2.0.0.BUILD-SNAPSHOT
      • 如果您使用的版本為1.0.0.RELEASE2.0.0.RELEASE,我們將假定最新版本為2.0.0.RELEASE
      • 如果您有一個名為latest+的版本,我們將選擇該文件夾
    • release-查找存根的最新版本。這意味著:

      • 如果您使用的版本為1.0.0.RELEASE,2.0.0.BUILD-SNAPSHOT2.0.0.RELEASE,我們將假定最新版本為2.0.0.RELEASE
      • 如果您有一個名為release的版本,我們將選擇該文件夾
  • 最后,有兩個文件夾:

    • contracts-優(yōu)良作法是將每個消費者所需的合同與消費者名稱一起存儲在文件夾中(例如beer-api-consumer)。這樣,您可以使用stubs-per-consumer功能。進(jìn)一步的目錄結(jié)構(gòu)是任意的。
    • mappings-在該文件夾中,Maven / Gradle Spring Cloud Contract插件將推送存根服務(wù)器映射。在使用者方面,Stub Runner將掃描此文件夾以使用存根定義啟動存根服務(wù)器。文件夾結(jié)構(gòu)將是在contracts子文件夾中創(chuàng)建的文件夾的副本。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號